日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

qt控件基本应用

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 qt控件基本应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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);//一個labelQLabel* 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)));//設置自動補全提示,內容為前面的itemcombo->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點的值給spinBoxconnect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));lay->addWidget(new QDateTimeEdit);//LCDNumber顯示LCD數字QLCDNumber* number;lay->addWidget(number=new QLCDNumber(10));//顯示12345number->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(); }

我已經對其進行了解釋。

然后接下來我們看看顯示效果,有點逗,敬請諒解。

?

總結

以上是生活随笔為你收集整理的qt控件基本应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。