【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]
程序员文章站
2024-01-05 17:41:04
...
QSlider 滑动条与QSpinBox微调框
(这里只贴出控件的基本用法,需要时再查阅资料。)
QSlider *slider = new QSlider(Qt::Horizontal); // 创建水平滑动条
slider->setRange(0, 100); // 设置范围
slider->setValue(1); // 设置初始值
QSpinBox *spinbox = new QSpinBox(); // 创建微调框
spinbox->setRange(0, 100); // 设置范围
spinbox->setValue(1); // 设置初始值
connect(spinbox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int))); // 两者的值同时更改
connect(slider, SIGNAL(valueChanged(int)), spinbox, SLOT(setValue(int)));
connect(spinbox, SIGNAL(valueChanged(int)), this, SLOT(slot_spinbox())); // slot_spinbox()是自定义的槽函数,可根据需求自行修改
QComboBox下拉选择框
QComboBox *combo = new QComboBox(); // 下拉选择框
combo->addItem(tr("第一个选项")); // 添加选项
combo->addItem(tr("第二个选项"));
connect(combo, SIGNAL(currentIndexChanged(int)), this, SLOT(slot_combo())); // slot_combo()是自定义的槽函数,可根据需求自行修改
// combo->currentIndex()可以查看当前索引值
QRadioButton 单选按钮
QRadioButton *radio1 = new QRadioButton(tr("选项1"));// 单选按钮
QRadioButton *radio2 = new QRadioButton(tr("选项2"));// 单选按钮
radio1->setChecked(true); // 用于设定初始值
//radio1->isChecked() == true // 该语句用于判断单选按钮是否被选定
connect(radio1, SIGNAL(clicked()), this, SLOT(slot_radio1()));// 自定义的槽函数,可根据需求自行修改
connect(radio2, SIGNAL(clicked()), this, SLOT(slot_radio2()));
QButtonGroup *radioGroup = new QButtonGroup(); // 单选按钮组,不可视
radioGroup->setExclusive(true); // 组内按钮互斥,即每次只能选定一个按钮
radioGroup->addButton(radio1);
radioGroup->addButton(radio2);
// 布局
slider->move(50, 200);
spinbox->move(200, 200);
combo->move(50, 250);
radio1->move(50, 350);
radio2->move(150, 350);
如果要在停靠窗口QDockWidget上添加控件,QWidget *parent参数(默认为this)需要设置为指定的窗口,比如上面的代码,需要改成
……
QSlider *slider = new QSlider(Qt::Horizontal,dock_Geom);
……
QSpinBox *spinbox = new QSpinBox(dock_Geom);
……
QComboBox *combo = new QComboBox(dock_Geom);
……
QRadioButton *radio1 = new QRadioButton(tr("选项1"), dock_Geom);
……
QRadioButton *radio2 = new QRadioButton(tr("选项2"), dock_Geom);
……