一、Qt 输入组控件(Input Widgets)
Qt Input Widgets是一组用户界面元素,用于输入和显示文字和数字等的数据。这些小部件可以组成各种不同的表单和对话框,用户可以使用这些小部件与程序交互。
以下是Qt Input Widgets的一些常见小部件:
- QLineEdit:用于单行文本输入,比如用户名和密码等。
- QTextEdit:用于多行文本输入,比如邮件正文等。
- QPlainTextEdit:用于纯文本的多行输入,比如代码编辑器等。
- QSpinBox:用于数字输入,比如选择年龄等。
- QComboBox:用于下拉选择列表,比如选择性别等。
- QCheckBox:用于选择复选框,比如选择喜欢的运动等。
- QRadioButton:用于选择单选按钮,比如选择语言等。
Qt Input Widgets全部部件如下图:
控件名称依次解释如下:
1.编辑组合框 2.字体组合框 3.行编辑框 4.文本编辑框
5.多行文本编辑器 6.整数旋转框 7.小数旋转框 8.时间编辑
9.日期编辑 10.日期时间编辑 11.表盘控件 12.水平和垂直滚动条
13.水平和垂直滑动条 14.快捷键输入控件
我们来对一些常见的进行讲解:
QCombo Box
QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框。
QFontComboBox()是QComboBox()的一个子类,但是它的内容是不能被编辑的,主要是用来选择字体。
举个例子:
像这样,当我们点击的时候会出现下拉框,添加自己的内容到上面去,进行选择。
我们编写便介绍:
首先在头文件中创建几个对象以及槽函数:
private:
//1,声明QCombox的对象
QComboBox *cbx;
//声明QFontBox对象
QFontComboBox *fontBox;
QLabel *labs;
private slots:
void Comboxindex(int);
void FontComBox(QFont);
然后去源文件进行实例化:
//1,设置窗口显示位置及大小
this->setGeometry(200,200,800,500);
//1.实例化操作
cbx=new QComboBox(this);
cbx->setGeometry(10,10,200,30);//设置控件大小
//2,
fontBox=new QFontComboBox(this);
labs=new QLabel(this);
addItem() 函数添加一个列表项
cbx->addItem("苏州市");//添加选项
cbx->addItem("上海市");
cbx->addItem("周口市");
cbx->addItem("牛逼市");
你也可以使用addltems() 函数添加多个列表项
QStringList str;
str<<"苏州市"<<"上海市"<<"周口市"<<"牛逼市";
cbx->addItems(str);
常用的API:
在一个 QComboBox 组件上选择项发生变化时,会发射如下两个信号:
void currentlndexChanged(int index)
void currentlndexChanged(const QString &text)
这两个信号只是传递的参数不同,一个传递的是当前项的索引号,一个传递的当前项的文字。
链接槽函数:
//fontBox用于改变字体,字体展现放在了labs中
fontBox->setGeometry(10,50,200,30);
labs->setGeometry(10,80,300,60);
//信号槽函数链接实现
connect(cbx,SIGNAL(currentIndexChanged(int)),this,SLOT(Comboxindex(int)));
connect(fontBox,SIGNAL(currentFontChanged(QFont)),this,SLOT(FontComBox(QFont)));
槽函数的实现:
void MainWindow::Comboxindex(int index)
{
qDebug()<<"你选择的是:"<<cbx->currentText();
QMessageBox mybox(QMessageBox::Question,"信息",
cbx->itemText(index),QMessageBox::Yes|QMessageBox::No);
mybox.exec();//执行一下
}
void MainWindow::FontComBox(QFont font)
{
labs->setFont(font);
QString qStr="为中华崛起而读书";
labs->setText(qStr);
}
其中 QMessageBox用于提示信息的一个对话框,添加yes或no选项。
运行结果: