Qt6教程之二(7) input widgets

在Qt控件中,输入类的控件占比最大,数量多达16个,下面将演示每一个控件的具体用法。

16个输入控件列表如下:

1、combo box 叫下拉列表框,用于展示多条文本数据;

2、font combo box   叫字体选择窗口部件,用于让用户选择合适的字体;

3、line edit  叫单行文本输入框,用于让用户输入文本信息;

4、text edit 叫多行文本输入框,用于让用户输入多行文本;

5、plain text edit  是一个只支持纯文本的编辑框,用于让用户查看和编辑内容;

6、spin box  是一个整数输入框,用于让用户输入和查看整数;

7、double spin box  是一个支持输入小数、负数、整数的输入框,用于让用户输入和查看数据;  

8、time edit  是一个时间编辑框,用于让用户修改和查看时间(时分秒);

9、date edit  是一个日期编辑控件,用户让用户修改和查看日期(年月日);

10、date/time edit  是一个时间日期编辑控件,用户让用户修改和查看时间日期(年月日时分秒);

11、dial  是一个带滑块的圆形转盘,当用户滑动滑块时,与之绑定的其他事件将发生改变;

12、horizontal scroll bar 是一个水平滑动条,当用户拖动滑动条时,与之绑定的其他事件将发生改变;vertical scroll bar 是一个垂直滑动条,当用户拖动滑动条时,与之绑定的其他事件将发生改变;

13、horizontal slider是一个水平滚动条,vertical slider是一个垂直滚动条,当用户拖动滚动条时,与之绑定的其他事件将发生改变;

14、key sequence edit 是一个记录快捷键的控件,方便用户设置快捷键来的一个控件;

下面将使用纯代码的方式依次演示各个控件的具体用法。话不多说,开始敲代码:

1、combo box 

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void selectText(QString s);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"

#include <QComboBox>
#include<QStatusBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    resize(800,800);
    setWindowTitle("combo box");

    QComboBox *combobox=new QComboBox(this);
    combobox->setGeometry(200,200,500,60);

    combobox->addItem("A");
    combobox->addItem("B");

    QStringList list;
    list<<"C"<<"D"<<"E"<<"F";

    combobox->addItems(list);
    combobox->setCurrentIndex(0);

    connect(combobox,SIGNAL(currentTextChanged(QString)),this,SLOT(selectText(QString)));

}

MainWindow::~MainWindow()
{
}



void MainWindow::selectText(QString s)
{
   this->statusBar()->showMessage("you select is: "+s);
}

运行效果:

2、font combo box

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void fontChange(QFont f);
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QFontComboBox>
#include<QFont>
#include<QStatusBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    resize(800,800);
    setWindowTitle("font combo box");

    QFontComboBox *fontcombobox=new QFontComboBox(this);
    fontcombobox->setGeometry(200,200,300,60);

    connect(fontcombobox,SIGNAL(currentFontChanged(QFont)),this,SLOT(fontChange(QFont)));
}

MainWindow::~MainWindow()
{
}


void MainWindow::fontChange(QFont f)
{
     this->statusBar()->showMessage(f.toString());
}

程序运行效果:

3、line edit

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void textChange(QString s);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QLineEdit>
#include<QStatusBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(800,800);
    setWindowTitle("line edit");

    QLineEdit *edit=new QLineEdit("lineEdit",this);
    edit->setGeometry(200,200,400,30);

    connect(edit,SIGNAL(textChanged(QString)),this,SLOT(textChange(QString)));
}

MainWindow::~MainWindow()
{
}

void MainWindow::textChange(QString s)
{
    statusBar()->showMessage("you input text is: "+s);
}

程序运行效果:

4、text edit

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTextEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QTextEdit *textEdit;

private slots:
    void textChange();

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QStatusBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(800,800);
    setWindowTitle("textEdit");

    textEdit=new QTextEdit("please input text affter push enter to next line",this);
    textEdit->setGeometry(100,100,500,500);

    connect(textEdit,SIGNAL(textChanged()),this,SLOT(textChange()));

}

MainWindow::~MainWindow()
{
}


void MainWindow::textChange()
{
   statusBar()->showMessage(textEdit->toPlainText());
}

程序运行效果:

5、plain text edit

此处实现的功能是: 把输入框中的每一行文本显示到下拉框中;

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QComboBox>
#include <QMainWindow>
#include <QPlainTextEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QPlainTextEdit *plaintext;
    QTextDocument *docment;
    QComboBox *combo;
    int blockCount;

 private slots:
    void blockCountChange(int count);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QPlainTextEdit>
#include<QStatusBar>
#include<QTextDocument>
#include<QComboBox>
#include<QTextBlock>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(800,800);
    setWindowTitle("plain text edit");

    plaintext=new QPlainTextEdit("plain text edit",this);
    plaintext->setGeometry(100,100,400,400);
    docment=plaintext->document();

    combo=new QComboBox(this);
    combo->setGeometry(100,600,600,40);



    connect(docment,SIGNAL(blockCountChanged(int)),this,SLOT(blockCountChange(int)));

}

MainWindow::~MainWindow()
{
}


void MainWindow::blockCountChange(int count)
{
    combo->clear();

    for (int var = 0; var < count; ++var) {
        combo->addItem(docment->findBlockByNumber(var).text());
    }

  this->statusBar()->showMessage("current total have: "+QString::number(count)+"line text");
}

运行效果:

6、spin box

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "qcombobox.h"
#include <QMainWindow>
#include <QSpinBox>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QSpinBox *spinbox,*spinbox2;
    QComboBox *combobox;

private slots:
    void textChange(QString toChange);
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QSpinBox>
#include<QStatusBar>
#include<QComboBox>
#include<QLabel>
#include<QHBoxLayout>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    resize(800,800);
    setWindowTitle("spin box");


    QLabel *label=new QLabel("请选择需要转换的进制:",this);
    label->resize(150,20);

    QWidget *widget=new QWidget(this);
    QHBoxLayout *hbox=new QHBoxLayout;

    spinbox=new QSpinBox;
    spinbox->setMaximum(INT_MAX);



    combobox=new QComboBox;
    combobox->addItem("2");
    combobox->addItem("8");
    combobox->addItem("10");
    combobox->addItem("16");

    spinbox2=new QSpinBox;
    spinbox2->setMaximum(INT_MAX);


    hbox->addWidget(spinbox);
    hbox->addWidget(label);
    hbox->addWidget(combobox);
    hbox->addWidget(spinbox2);

    widget->setLayout(hbox);
    widget->resize(width(),height());

    connect(combobox,SIGNAL(currentTextChanged(QString)),this,SLOT(textChange(QString)));
}

MainWindow::~MainWindow()
{
}


void MainWindow::textChange(QString toChange)
{
    int v=spinbox->value();
    spinbox2->setValue(v);
    spinbox2->setDisplayIntegerBase(toChange.toInt());
}

运行效果:

7、double spin box

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDoubleSpinBox>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QDoubleSpinBox *spinbox;


private slots:
    void textChange(QString toChange);
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QSpinBox>
#include<QStatusBar>
#include<QDoubleSpinBox>
#include<QLabel>
#include<QHBoxLayout>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    resize(800,800);
    setWindowTitle("spin box");

    QWidget *widget=new QWidget(this);
    QHBoxLayout *hbox=new QHBoxLayout;

    spinbox=new QDoubleSpinBox;
    spinbox->setMaximum(INT_MAX);

    hbox->addWidget(spinbox);

    widget->setLayout(hbox);
    widget->resize(width(),height());

    connect(spinbox,SIGNAL(textChanged(QString)),this,SLOT(textChange(QString)));
}

MainWindow::~MainWindow()
{
}


void MainWindow::textChange(QString toChange)
{
    statusBar()->showMessage(toChange);
}

运行效果:

8、time edit

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTimeEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private :
    QTimeEdit *time;

private slots:
    void timeChange(QTime time);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QTimeEdit>
#include<QStatusBar>
#include<QTime>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(800,800);
    setWindowTitle("time edit");

    QTimeEdit *time=new QTimeEdit(this);
    time->setGeometry(200,200,200,200);

    time->setTime(QTime::currentTime());
    time->setDisplayFormat("HH:mm:ss");


    connect(time,SIGNAL(timeChanged(QTime)),this,SLOT(timeChange(QTime)));

}

MainWindow::~MainWindow()
{
}

void MainWindow::timeChange(QTime time)
{
   statusBar()->showMessage(time.toString());
}

程序运行效果:

9、date edit

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDateEdit>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private :
    QDateEdit *date;

private slots:
    void timeChange(QDate date);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QDateEdit>
#include<QStatusBar>
#include<QDate>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(800,800);
    setWindowTitle("time edit");

    QDateEdit *date=new QDateEdit(this);
    date->setGeometry(200,200,200,200);

    date->setDate(QDate::currentDate());
    date->setDisplayFormat("yyyy-MM-dd ");


    connect(date,SIGNAL(dateChanged(QDate)),this,SLOT(timeChange(QDate)));

}

MainWindow::~MainWindow()
{
}

void MainWindow::timeChange(QDate date)
{
   statusBar()->showMessage(QString::number(date.year())+"-"+QString::number(date.month())+"-"+QString::number(date.day()));
}

运行效果:

10、date/time edit

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QDateTimeEdit>
#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QDateTimeEdit *dateTime;

private slots:
    void dateTimeChange(QDateTime d);
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QDateTimeEdit>
#include<QStatusBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    resize(800,800);
    setWindowTitle("dateTime edit");

    dateTime=new QDateTimeEdit(QDateTime::currentDateTime(),this);
    dateTime->resize(400,40);
    dateTime->setDisplayFormat("yyyy-MM-dd HH:mm:ss");
    //弹出日期控件
    dateTime->setCalendarPopup(true);

    connect(dateTime,SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(dateTimeChange(QDateTime)));
}

MainWindow::~MainWindow()
{
}

void MainWindow::dateTimeChange(QDateTime d)
{
    auto date = d.date();
    auto time=d.time();

    QString dateStr=QString::number(date.year())+"-"+QString::number(date.month())+"-"+QString::number(date.day());
    QString timeStr=QString::number(time.hour())+":"+QString::number(time.minute())+":"+QString::number(time.second());

    statusBar()->showMessage(dateStr+"  "+timeStr);
}

运行效果:

11、dial

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QDial>
#include <QLabel>
#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QDial *dial;
    QLabel *label ;

private slots:
    void sliderChange(int value);
};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QDial>
#include <QLabel>
#include<QStyle>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setGeometry(100,100,800,800);
    setWindowTitle("dial");

    dial=new QDial(this);
    dial->setGeometry(100,100,400,400);
    dial->setStyleSheet("background-color:rgb(%1,%2,%3);");

    /* 设置页长(两个最大刻度的间距)*/
    dial->setPageStep(10);

    /* 设置刻度可见 */
    dial->setNotchesVisible(true);

    /* 设置两个凹槽之间的目标像素数 */
    dial->setNotchTarget(1.00);

    /* 设置dial值的范围 */
    dial->setRange(0,400);

    /* 开启后可指向圆的任何角度 */
    //dial->setWrapping(true);

    /* 实例化对象和设置显示位置与大小 */
    label = new QLabel("0 km/h",this);
    label->setGeometry(270, 300, 200, 50);

    connect(dial,SIGNAL(valueChanged(int)),this,SLOT(sliderChange(int)));
}

MainWindow::~MainWindow()
{
}


void MainWindow::sliderChange(int value)
{
    label->setText(QString::number(value)+" km/h");
}

运行效果:

12、horizontal scroll bar  与 vertical scroll bar

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QLabel>
#include <QMainWindow>
#include <QScrollBar>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QScrollBar *horizontalScrollBar,*verticalScrollBar;
    QLabel *label ;

private slots:
    void horizontalScrollBarvalueChange(int value);
    void verticalScrollBarvalueChange(int value);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QScrollBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setGeometry(100,100,800,800);
    setWindowTitle("horizontal scroll bar");

    horizontalScrollBar=new QScrollBar(Qt::Horizontal,this);
    horizontalScrollBar->setGeometry(0,600,800,20);
    horizontalScrollBar->setRange(0,100);
    horizontalScrollBar->setSingleStep(10);
    horizontalScrollBar->setStyleSheet("QScrollBar:horizontal  {"
                                                                 "border-top: 1px solid rgb(99, 174, 236);"
                                                                 "border-left: 1px solid rgb(99, 174, 236);"
                                                                 "border-right: 1px solid rgb(99, 174, 236);"
                                                                 "background: rgb(213,100,252);"
                                                                 "height: 15px;"
                                                                 "margin: 0px 0 0px 0;"
                                                                 "}");



    verticalScrollBar=new QScrollBar(Qt::Vertical,this);
    verticalScrollBar->setGeometry(600,0,20,800);
    verticalScrollBar->setRange(0,100);
    verticalScrollBar->setSingleStep(10);
    verticalScrollBar->setStyleSheet("QScrollBar:Vertical  {"
                                                                 "border-top: 1px solid rgb(99, 174, 236);"
                                                                 "border-left: 1px solid rgb(99, 174, 236);"
                                                                 "border-right: 1px solid rgb(99, 174, 236);"
                                                                 "background: rgb(255,255,255);"
                                                                 "height: 15px;"
                                                                 "margin: 0px 0 0px 0;"
                                                                 "}");


    label=new QLabel("0",this);
    label->setGeometry(100,400,300,100);

    connect(horizontalScrollBar,SIGNAL(valueChanged(int)),this,SLOT(horizontalScrollBarvalueChange(int)));
    connect(verticalScrollBar,SIGNAL(valueChanged(int)),this,SLOT(verticalScrollBarvalueChange(int)));
}

MainWindow::~MainWindow()
{
}

void MainWindow::horizontalScrollBarvalueChange(int value)
{
    label->setText("horizontal value is:"+QString::number(value));
}

void MainWindow::verticalScrollBarvalueChange(int value)
{
    label->setText("vertical value is:"+QString::number(value));
}


运行效果:

13、horizontal slider与vertical slider

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QSlider>
#include<QLabel>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QSlider *horizontalSlider,*verticalSlider;
    QLabel *label;

private slots:
    void valueChange(int value);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include<QSlider>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setGeometry(100,100,800,800);
    setWindowTitle("slider");

    horizontalSlider=new QSlider(Qt::Horizontal,this);
    horizontalSlider->setGeometry(0,600,800,20);
    horizontalSlider->setRange(0,100);
    horizontalSlider->setPageStep(10);
    horizontalSlider->setValue(60);

    verticalSlider=new QSlider(Qt::Vertical,this);
    verticalSlider->setGeometry(600,0,20,800);
    verticalSlider->setRange(0,100);
    verticalSlider->setPageStep(10);
    verticalSlider->setValue(80);

    label=new QLabel("horizontalSlider value is:"+QString::number(horizontalSlider->value())+"\n"+"verticalSlider value is:"+QString::number(verticalSlider->value()),this);
    label->setGeometry(400,400,200,30);

    connect(horizontalSlider,SIGNAL(valueChanged(int)),this,SLOT(valueChange(int)));
    connect(verticalSlider,SIGNAL(valueChanged(int)),this,SLOT(valueChange(int)));
}

MainWindow::~MainWindow()
{
}

void MainWindow::valueChange(int value)
{
    label->setText("value is: "+QString::number(value));
}

运行效果:

14、key sequence edit

main.cpp

#include "mainwindow.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QKeySequenceEdit>
#include<QLabel>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    QKeySequenceEdit *keyEdit;
    QLabel *label;


private slots:
    void keyChange(QKeySequence key);

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    setGeometry(100,100,800,800);
    setWindowTitle("key Squence Edit");

    keyEdit=new QKeySequenceEdit(this);
    keyEdit->setGeometry(200,200,500,50);

    label=new QLabel("Ctrl + Q退出程序 ",this);
    label->setGeometry(200,250,300,30);

    connect(keyEdit,SIGNAL(keySequenceChanged(QKeySequence)),this,SLOT(keyChange(QKeySequence)));
}

MainWindow::~MainWindow()
{
}

void MainWindow::keyChange(QKeySequence key)
{

    if(key==QKeySequence("Ctrl+Q")){
        this->close();
    }else {
         label->setText("you press keys is: "+key.toString());
    }
}

运行效果:

下一篇文章:Qt6教程之二(8) Display Widgets

上一篇文章:Qt6教程之二(6) contains

PySide6Qt 的官方 Python 绑定库,它允许开发者使用 Python 编写跨平台的桌面应用程序。Qt Designer 是 Qt 的图形界面设计工具,可以帮助开发者快速创建和编辑用户界面。 下面是一个简单的教程,介绍如何使用 PySide6Qt Designer 创建一个简单的界面应用程序: 1. 安装 PySide6: 在命令行中执行以下命令来安装 PySide6: ``` pip install pyside6 ``` 2. 创建 UI 文件: 使用 Qt Designer 创建你的用户界面,并将其保存为 `.ui` 文件。你可以在 Qt Creator 中打开 Qt Designer,然后通过拖放控件和布局来设计你的界面。保存 `.ui` 文件。 3. 将 UI 文件转换为 Python 代码: 在命令行中执行以下命令来将 `.ui` 文件转换为 Python 代码: ``` pyside6-uic input.ui -o output.py ``` 这将生成一个名为 `output.py` 的 Python 代码文件,其中包含从 UI 文件生成的 Python 代码。 4. 创建主应用程序: 创建一个名为 `main.py` 的 Python 文件,并编写以下代码: ```python import sys from PySide6.QtWidgets import QApplication from output import Ui_MainWindow app = QApplication(sys.argv) window = Ui_MainWindow() window.show() sys.exit(app.exec()) ``` 这个代码片段导入了 `QApplication` 类,用于创建应用程序对象。然后,从 `output.py` 文件中导入了 `Ui_MainWindow` 类,该类表示从 UI 文件生成的主窗口。接下来,创建应用程序对象和主窗口对象,并显示主窗口。 5. 运行应用程序: 在命令行中执行以下命令来运行应用程序: ``` python main.py ``` 应用程序将启动,并显示从 UI 文件生成的界面。 这只是一个简单的示例教程,帮助你入门 PySide6Qt Designer。你可以进一步探索 PySide6 的文档和示例代码,以了解更多高级功能和用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_shenbing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值