qt控件基本应用
2016-04-16 18:31
786 查看
Qt里面有很多控件,让我们来看一些常用控件。
首先是对pro文件的配置
HEADERS += \
MyWidget.h
SOURCES += \
MyWidget.cpp
QT+=widgets gui
CONFIG += c++11
因为要用到lambda所以要加一个CONFIG+=c++11
下面是MyWidget.h
下面是MyWidget.cpp
我已经对其进行了解释。
然后接下来我们看看显示效果,有点逗,敬请谅解。
首先是对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(); }
我已经对其进行了解释。
然后接下来我们看看显示效果,有点逗,敬请谅解。
相关文章推荐
- 迁移到MSYS2 与 Qt 工具链注意的几个事情
- QT编程之——使用全局变量
- qt中如何播放声音
- 【QT】:QT中的单选框和复选框的使用
- Qt应用程序自动重启(零零散散)
- 关于QtGraphics编程的几点经验总结_qgraphicsscene
- ubuntu 15 安装Qt
- 基于QT和OpenCV的人脸检測识别系统(1)
- QT中QProcess调用命令行的痛苦经历
- Qt信号与槽机制1
- SeimiAgent——基于QtWebkit的通用网页渲染代理服务
- 让QT跑在ARM开发板上
- qt坐标系统与布局的简单入门
- QT 连接数据库的详细步骤
- [解决方案] Ubuntu 16.04 下 Qt 5.6 无法输入中文的问题
- 向Tiny6410移植QT4.7.0版本
- qt输入框
- QT中的OpcDa 客户端 实现
- qt入门
- qt3d中基于opengles编写shader