【QT】QT从零入门教程(九):QT常用控件 [QSlider、QSpinBox、QComboBox、QRadioButton]

x33g5p2x  于2022-03-06 转载在 其他  
字(1.8k)|赞(0)|评价(0)|浏览(693)

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); 
……

相关文章