• qt学习(二)控件


    控件

    1.添加一个类MyWidget.h,会有出现MainWindow.h和MainWindow.cpp

    #ifndef MYWIDGET_H
    #define MYWIDGET_H
    
    #include <QWidget>
    #include <QTextEdit>
    class MyWidget : public QWidget
    {
        Q_OBJECT
    public:
        explicit MyWidget(QWidget *parent = 0);
    
        QTextEdit* _edit;
    
    signals:
    
    public slots:
        void slotComboBoxIndexChanged(const QString&);
    };
    
    #endif // MYWIDGET_H
    #include "MyWidget.h"
    #include <QApplication>
    
    #include <QLabel>     // disply static text, or image
    #include <QPushButton>
    #include <QLineEdit> // single line
    
    #include <QComboBox>
    #include <QCheckBox>
    #include <QRadioButton>
    #include <QTextEdit> // multi lines, rich text
    #include <QTextBrowser> // readonly textedit
    #include <QGroupBox>  //
    #include <QSlider>    // 模拟方式显示数值
    #include <QSpinBox>  // 数字
    #include <QDateEdit>
    #include <QTimeEdit>
    #include <QDateTimeEdit>
    #include <QTabWidget> // 不介绍,不算控件
    #include <QCompleter>
    #include <QHBoxLayout>
    #include <QDebug>
    #include <QPixmap>
    #include  <QVBoxLayout>
    #include <QLCDNumber>
    #include<QCompleter>
    MyWidget::MyWidget(QWidget *parent) :
        QWidget(parent)
    {
        QVBoxLayout* lay = new QVBoxLayout(this);
        QLabel* label;
        QComboBox* combo;
        QPushButton* button;
        QRadioButton* radio;
        QTextEdit* edit;
        QGroupBox* group;
    
        lay->addWidget(label = new QLabel("<a href=www.baidu.com>baidu</a>"));
       // label->setPixmap(QPixmap("../aaa.png"));//label显示静态文本
    
        connect(label, &QLabel::linkActivated, [](QString str){
            qDebug() << str;
        });//linkActivated链接被激发
    
        lay->addWidget(button = new QPushButton("Button"));
        //设置pushbutton的风格,将c++语言脚本话了
        button->setStyleSheet("QPushButton {font:bold 16px; color:black; padding:5px}");
        lay->addWidget(radio = new QRadioButton("Radio"));
        radio->setStyleSheet("QRadioButton {font:bold 16px; color:black; padding:5px}");
        connect(radio, &QRadioButton::clicked, [](bool v){
            qDebug() << v;
        });
    
        lay->addWidget(new QCheckBox("check box"));
        lay->addWidget(combo = new QComboBox());
        combo->addItem("Select item1");
        combo->addItem("Select item2");
        combo->setEditable(true);//可编辑的
        connect(combo, SIGNAL(currentIndexChanged(QString)), this, SLOT(slotComboBoxIndexChanged(QString)));
    
        combo->setCompleter(new QCompleter(combo->model()));//选的是下拉框的选项
    
        lay->addWidget(edit = new QTextEdit);//富文本的输入框
        edit->setText("<table border=1><tr><th>head1</th><th>head2</th></tr>"
                      "<tr><td>value1</td><td>value2</td></tr>"
                      "<tr><td>value3</td><td>value4</td></tr>"
                      "</table><br>"
                      "<img src=../aaa.png></img>");
        _edit = edit;
        connect(edit, &QTextEdit::textChanged, [&](){
         //   QTextEdit* edit = (QTextEdit*)this->sender();
            qDebug() << _edit->toPlainText();
        });
        edit->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);//设置垂直的滚动条
        edit->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    
    
        lay->addWidget(group = new QGroupBox("Some items"));//QGroupBox用来分门别类的
        QHBoxLayout* hBoxLay;
        group->setLayout(hBoxLay = new QHBoxLayout);
        hBoxLay->addWidget(new QPushButton("aaaa"));
        hBoxLay->addWidget(new QPushButton("aaaa"));
    
        QSlider* slider;
        QSpinBox* spinBox;
    
        lay->addWidget(slider = new QSlider(Qt::Horizontal));
        slider->setMaximum(100);
        slider->setMinimum(0);
    
        lay->addWidget(spinBox = new QSpinBox);
        spinBox->setMaximum(100);
        spinBox->setMinimum(0);
    
        connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
        connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
    
        lay->addWidget(new QDateTimeEdit);
    
        QLCDNumber* lcd;
        lay->addWidget(lcd = new QLCDNumber(10));
        lcd->display(12345);
        lcd->setMode(QLCDNumber::Hex);
        lcd->setSegmentStyle(QLCDNumber::Outline);
    }
    
    void MyWidget::slotComboBoxIndexChanged(const QString &str)
    {
        qDebug() << "slotComboBoxIndexChanged" << str;
    }
    
    int main(int argc, char** argv)
    {
        QApplication app(argc, argv);
    
        MyWidget w;
        w.show();
    
        return app.exec();
    }

    界面:

  • 相关阅读:
    面试中AOP这样说,面试官只有一个字:服!
    Spring第三天,详解Bean的生命周期,学会后让面试官无话可说!
    Spring第二天,你必须知道容器注册组件的几种方式!学废它吊打面试官!
    C#一些基础知识回顾
    关闭WiN10自动更新和后台程序。
    python脚本显示运行进程
    选择pyqt5理由
    anaconda3下64位python和32位python共存
    爬取百度搜索信息
    python尝试windows在用端口
  • 原文地址:https://www.cnblogs.com/rainbow1122/p/8137985.html
Copyright © 2020-2023  润新知