qt控件基本应用
来源:互联网 发布:内存泄漏java 编辑:程序博客网 时间:2024/06/07 14:24
Qt里面有很多控件,让我们来看一些常用控件。
首先是对pro文件的配置
HEADERS += \
MyWidget.h
SOURCES += \
MyWidget.cpp
QT+=widgets gui
CONFIG += c++11
因为要用到lambda所以要加一个CONFIG+=c++11
下面是MyWidget.h
- #ifndef MYWIDGET_H
- #define MYWIDGET_H
- #include <QWidget>
- #include <QTextEdit>
- class MyWidget : public QWidget
- {
- Q_OBJECT
- public:
- explicit MyWidget(QWidget *parent = 0);
- signals:
- public slots:
- //槽函数
- void comboChanged(const QString&);
- protected:
- QTextEdit *edit1;
- };
- #endif // MYWIDGET_H
下面是MyWidget.cpp
- #include "MyWidget.h"
- #include <QApplication>
- #include <QLabel>//显示静态文本或者图片
- #include <QPushButton>
- #include <QLineEdit>//一行
- #include <QComboBox>
- #include <QCheckBox>
- #include <QRadioButton>
- #include <QTextEdit>//富文本
- #include <QTextBrowser>//只读富文本
- #include <QGroupBox>//分类框
- #include <QSlider> //滑块
- #include <QSpinBox> //数字的
- #include <QDateEdit>
- #include <QTimeEdit>
- #include <QDateTimeEdit>
- #include <QVBoxLayout>
- #include <QCompleter>
- #include <QHBoxLayout>
- #include <QDebug>
- #include <QPixmap>
- #include <QLCDNumber>
- MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
- {
- //垂直布局
- QVBoxLayout* lay = new QVBoxLayout(this);
- //一个label
- QLabel* label;
- //一个下拉框
- QComboBox *combo;
- //一个按钮
- QPushButton* button;
- //一个点选框
- QRadioButton* radio;
- //一个富文本
- QTextEdit* edit;
- //一个组
- QGroupBox* group;
- //Qt里面可以用html来对控件的样式做变化
- lay->addWidget(label=new QLabel("<a href='www.baidu.com'>baidu</a>"));
- //设置按钮背景图片
- label->setPixmap(QPixmap("../bbb.jpg"));
- //c++11里面的新特性,相对于槽模式,lambda更加方便
- connect(label,&QLabel::linkActivated,[](QString str){
- qDebug() << str;
- });
- lay->addWidget(button=new QPushButton("Button"));
- //设置css样式表,可见qt还是比较强大的
- button->setStyleSheet("QPushButton {font:bold 16px;color:red}");
- lay->addWidget(radio=new QRadioButton("Radio"));
- radio->setStyleSheet("QRadioButton {font:bold 16px;color:red}");
- lay->addWidget(new QCheckBox("check"));
- connect(radio,&QRadioButton::clicked,[](bool v){
- qDebug() << v;
- });
- //添加下拉框
- lay->addWidget(combo=new QComboBox());
- //添加2个元素
- combo->addItem("select item1");
- combo->addItem("select item2");
- //设置是否可编辑
- combo->setEditable(true);
- //注释掉的部分是自动补全的提示
- // combo->setCompleter(new QCompleter(QStringList() << "aaa" << "bbb"));
- //槽模式,注意在别的地方有相应的函数
- connect(combo,SIGNAL(currentIndexChanged(QString)),this,SLOT(comboChanged(QString)));
- //设置自动补全提示,内容为前面的item
- combo->setCompleter(new QCompleter(combo->model()));
- //添加富文本
- lay->addWidget(edit=new QTextEdit);
- edit->setText("<table border=1><tr><th>header1</th><th>header2</th></tr>"
- "<tr><td>value1</td><td>value2</td></tr>"
- "<tr><td>value3</td><td>value4</td></tr>"
- "</table>"
- "<br />"
- "<img src=../aaa.jpg></img>");
- lay->addWidget(edit1=new QTextEdit);
- connect(edit1,&QTextEdit::textChanged,[&](){
- qDebug() << edit1->toPlainText();
- });
- //添加组
- lay->addWidget(group=new QGroupBox("some items"));
- //水平布局
- QHBoxLayout* layout;
- //把组的布局设置为水平布局
- group->setLayout(layout=new QHBoxLayout);
- layout->addWidget(new QPushButton("aaaa"));
- layout->addWidget(new QPushButton("aaaa"));
- //把组加入到最开始的垂直布局里面
- lay->addWidget(new QGroupBox);
- //滑块
- QSlider* slider;
- lay->addWidget(slider=new QSlider(Qt::Horizontal));
- //设置滑块的最小值
- slider->setMinimum(0);
- //设置滑块的最大值
- slider->setMaximum(100);
- //spinbox类似于滑块,不过其会显示值
- QSpinBox* spinBox;
- lay->addWidget(spinBox=new QSpinBox);
- spinBox->setMaximum(100);
- spinBox->setMinimum(0);
- //槽函数,把slider点的值给spinBox
- connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));
- lay->addWidget(new QDateTimeEdit);
- //LCDNumber显示LCD数字
- QLCDNumber* number;
- lay->addWidget(number=new QLCDNumber(10));
- //显示12345
- number->display(12345);
- //显示风格
- number->setSegmentStyle(QLCDNumber::Flat);
- }
- void MyWidget::comboChanged(const QString &str)
- {
- qDebug() << "combo value is " << str;
- }
- int main(int argc,char** argv)
- {
- QApplication app(argc,argv);
- MyWidget w;
- w.show();
- return app.exec();
- }
我已经对其进行了解释。
然后接下来我们看看显示效果,有点逗,敬请谅解。
0 0
- qt控件基本应用
- qt控件基本应用
- 简单控件基本应用
- jqGrid列表控件基本应用
- Qt控件美化(基本使用)
- Qt控件美化(基本使用)
- Qt控件美化(基本使用)
- Qt笔记:设置控件的基本属性
- QT学习笔记----Pushbutton,label控件应用
- qt入门--一些基础控件的应用
- Qt控件之TableView简单应用
- Qt控件之QLabel简单应用
- WindowsPhone7的Map控件基本应用.
- QTableView基本用法讲解,Qt表格控件的使用方法
- QTableView基本用法讲解,Qt表格控件的使用方法
- Qt对基本控件进行美化 QStyle和QStyleSheet
- 初学Qt:初步了解Windows窗口基本控件
- Qt之QComboBox(基本应用、代理设置)
- CSS3基础第一篇(圆角,阴影,渐变,选择器)
- DB之Oracle数据库维护命令
- python实现欧拉计划第十一题
- centos基本命令 vim基本命令 2016.04.26回顾
- 练习——后缀数组题目
- qt控件基本应用
- VS2015使用小技巧 VS代码字体变大
- 在git与tortoisegit中使用openSSH与PuTTY
- IIC的读写时序问题
- Golang httptls 通信,带证书请求小实例
- 心灵鸡汤之20160427
- WAITEVENT: "library cache: mutex X" (文档 ID 727400.1)
- 奋斗吧,程序员——第十七章 年年岁岁花相似,岁岁年年人不同
- 【自定义标签开发】09-标签案例-开发foreach标签