• 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();
    }

    界面:

  • 相关阅读:
    【leetcode】106. Construct Binary Tree from Inorder and Postorder Traversal
    【leetcode】105. Construct Binary Tree from Preorder and Inorder Traversal
    【leetcode】236. Lowest Common Ancestor of a Binary Tree
    【leetcode】235. Lowest Common Ancestor of a Binary Search Tree
    【leetcode】352. Data Stream as Disjoint Intervals
    【leetcode】897. Increasing Order Search Tree
    【leetcode】900. RLE Iterator
    BEC listen and translation exercise 26
    BEC listen and translation exercise 25
    BEC listen and translation exercise 24
  • 原文地址:https://www.cnblogs.com/rainbow1122/p/8137985.html
Copyright © 2020-2023  润新知