50-Qt控件详解:Input Display

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
//1.Combo Box控件
#include<QComboBox>
//2.QFontComboBox控件
#include<QFontComboBox>
#include<QLabel>

//3.Line Edit控件
#include<QLineEdit>
#include <QPushButton>

//4. Plain Text Edit控件
#include <QPlainTextEdit>
#include<QRadioButton>

//5. QSpin Box 控件
#include<QSpinBox>


//6.时间控件
#include <QTimeEdit>
#include <QDateEdit>
#include <QDateTimeEdit>
//7.QScrollBar控件
#include <QScrollBar>

//8.QKeySequenceEdit控件

#include <QKeySequenceEdit>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::MainWindow *ui;
    //1.声明一个QComboBox对象
    QComboBox *combobox;


private slots:
    void comboxIndex(int);


    //2.声明QFontComboBox对象
private:

    QFontComboBox *fontcombobox;
    QLabel *qlabels;
private slots:
    void fontcomboboxFunc(QFont);

    //3.声明QLineEdit/QPushButton/QLabel对象
private:

    QLineEdit *lineedit;
    QPushButton *pushbutton;
    QLabel *qlabely;
private slots:
    void pushbuttonclicked();

    //4.QPlainTextEdit/QRadioButton对象
private:

    QPlainTextEdit *plaintedit;
    QRadioButton *radiobutton;
private slots:
    void radioButtonClicked();


    //5.QSpinBox对象
private:
    QSpinBox * spinbox;

private slots:
    void spinboxValChanged(int);


    //6.QDateTimeEdit/QTimeEdit/QDateEdit对象
private:
    QDateTimeEdit *dte;
    QTimeEdit * te;
    QDateEdit * de;

    //7.QScrollBar对象
private:
    QScrollBar *hscrollbar,*vscrollbar;

    //8.QKeySequenceEdit对象
    QKeySequenceEdit * kse;
private slots:
    void keyseqeditChanged(const QKeySequence &);

};
#endif // MAINWINDOW_H



#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QDebug>
#include <QDir>
#include <QTextStream>//文本流


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //设置主窗口的显示位置及大小
    this->setGeometry(300,200,1000,600);

    //1.
    combobox  = new QComboBox(this);//实例化对象
    combobox->setGeometry(10,10,200,30);
    combobox->addItem("北京市");
    combobox->addItem("上海市");
    combobox->addItem("天津市");
    combobox->addItem("重庆市");
    combobox->addItem("江西市");
    combobox->addItem("广东市");
    combobox->addItem("香港特别行政区");
    combobox->addItem("澳门特别行政区");

    //信号槽连接函数实现
    connect(combobox,SIGNAL(currentIndexChanged(int)),this,
            SLOT(comboxIndex(int)));

    //2.
    fontcombobox = new QFontComboBox(this);
    qlabels =new QLabel(this);
    fontcombobox->setGeometry(10,50,200,30);
    qlabels->setGeometry(10,80,300,50);

    //信号与槽的链接
    connect(fontcombobox,SIGNAL(currentFontChanged(QFont)),this,SLOT(fontcomboboxFunc(QFont)));

    //3.
    lineedit = new QLineEdit(this);
    lineedit->setGeometry(10,150,200,30);

    pushbutton = new QPushButton(this);
    pushbutton->setGeometry(220,150,100,30);
    pushbutton->setText("点击我");
    qlabely = new QLabel(this);
    qlabely->setGeometry(10,200,400,30);
    qlabely->setText("你输入的内容为多少:");

    connect(pushbutton,SIGNAL(clicked()),this,SLOT(pushbuttonclicked()));


    //4.
    plaintedit = new QPlainTextEdit(this);
    plaintedit->setGeometry(10,240,400,200);

    radiobutton = new QRadioButton(this);
    radiobutton->setGeometry(260,220,200,30);
    radiobutton->setText("只读模式");

    //设置当前程序为工作目录
    QDir::setCurrent(QCoreApplication::applicationDirPath());
    QFile fe("moc_mainwindow.cpp");
    fe.open(QFile::ReadOnly | QFile::Text);

    //加载到文件流

    QTextStream strin(&fe);
    plaintedit->insertPlainText(strin.readAll());
    //
    connect(radiobutton,SIGNAL(clicked()),this,SLOT(radioButtonClicked()));



    //5.改变窗口背景颜色
    this->setStyleSheet("QMainWindow{background-color:""rgba(250,220,120,100%)}");

    spinbox = new QSpinBox(this);
    spinbox->setGeometry(440,250,150,30);

    spinbox->setRange(0,100);
    spinbox->setSingleStep(10);
    spinbox->setValue(100);

    spinbox->setSuffix("%不透明度 ");

    connect(spinbox,SIGNAL(valueChanged(int)),this,SLOT(spinboxValChanged(int)));



    //6.
    dte = new QDateTimeEdit(QDateTime::currentDateTime(),this);
    dte->setGeometry(440,290,200,30);

    te = new QTimeEdit(QTime::currentTime(),this);
    te->setGeometry(440,330,200,30);

    de = new QDateEdit(QDate::currentDate(),this);
    de->setGeometry(440,370,200,30);

    //7.


    hscrollbar = new QScrollBar(Qt::Horizontal,this);
    hscrollbar->setGeometry(0,500,1000,30);

    vscrollbar = new QScrollBar(Qt::Vertical,this);
    vscrollbar->setGeometry(970,0,30,500);

    //8.QKeySequenceEdit * kse;
    kse = new QKeySequenceEdit(this);
    kse->setGeometry(440,530,200,30);

    connect(kse,SIGNAL(keySequenceChanged(const QKeySequence &))
            ,this,SLOT(keyseqeditChanged(const QKeySequence &)));
}
MainWindow::~MainWindow()
{
    delete ui;
}
//1.
void MainWindow::comboxIndex(int index)
{
    QMessageBox mybox(QMessageBox::Question,"信息",combobox->itemText(index),QMessageBox::Yes | QMessageBox::No);
mybox.exec();
}
//2.
void MainWindow::fontcomboboxFunc(QFont font)
{
    qlabels->setFont(font);
    QString qStr = "零声教育QT开发工程师";
    qlabels->setText(qStr);

}
//3.
void MainWindow::pushbuttonclicked()
{
    QString qStr;
    qStr = "你输入的内容为:";
    qStr = qStr+lineedit->text();

    qlabely->setText(qStr);

    lineedit->clear();


}
//4.
void MainWindow::radioButtonClicked()
{
    //
    if(radiobutton->isChecked())
    {
        plaintedit->setReadOnly(true);
    }
    else
    {
        plaintedit->setReadOnly(false);
    }

}
//5.
void MainWindow::spinboxValChanged(int x)
{

    double dx = (double)x/100;
    this->setWindowOpacity(dx);


}
//8.
void MainWindow::keyseqeditChanged(const QKeySequence &key)
{
    if(key == QKeySequence(tr("Ctrl+Q")))
        this->close();
    else
        qDebug()<<key.toString()<< Qt::endl;



}

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值