首页 > 其他分享 >Qt5.12实战之QWidget使用

Qt5.12实战之QWidget使用

时间:2023-03-25 12:02:58浏览次数:46  
标签:实战 Qt5.12 void label pushButton ui QWidget include MainWindow



Qt5.12实战之QWidget使用_开发语言


main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.resize(1920,1080);
    w.setWindowTitle(QStringLiteral( "基于qt5开发的应用程序"));
    w.show();
    w.move(0,0);
    qDebug()<<w.geometry().height()<<w.geometry().width();
    qDebug()<<w.geometry().x()<<w.geometry().y();
    qDebug()<<w.frameGeometry().x()<<w.frameGeometry().y();
    qDebug()<<w.frameGeometry().height()<<w.frameGeometry().width();
    w.setMinimumSize(1920,1080);
    w.setMaximumSize(2020,1180);


    return a.exec();
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);

    ~MainWindow();
signals:
    //自定义信号
    void cust_sig_hide_btn();
private slots:
    void on_pushButton_clicked();
    //自定义槽
    void onChangeLabelText();
    void on_cust_sig_hide_btn();
    void on_label_2_linkActivated(const QString &link);
    void onMyQtBtnClicked();
    void on_pushButton_2_clicked();

    void on_pushButton_3_clicked();

private:
    Ui::MainWindow *ui;

};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTime>
#include  <QDateTime>
#include <QDebug>
#include <QIcon>
#include "mydialog.h"
#include <QFileDialog>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->pushButton->setFont(QFont("宋体",38));
    ui->pushButton->resize(1600,200);
    QDateTime t = QDateTime::currentDateTime();
    QString strTime=t.toString("yyyy-MM-dd hh:mm:ss.zzz ddd");
    ui->pushButton->setText(strTime);

    ui->label->setText(t.toString("yyyy"));
    ui->label_2->setText(t.toString("MM"));
    ui->label_3->setText(t.toString("dd"));

    setWindowIcon(QIcon(":/res/icon.ico"));

    setStyleSheet("background-image: url(:/res/WechatIMG89.jpeg); ");
    //手动链接事件信号与槽
    QObject::connect(ui->pushButton,//按钮发起点击信号
                     SIGNAL(clicked()),//信号名
                     this,//当前窗口接收信号
                     SLOT(onChangeLabelText()));//处理信号函数
    QObject::connect(this,
                     SIGNAL(cust_sig_hide_btn()),
                     this,
                     SLOT(on_cust_sig_hide_btn()));
    connect(ui->myQtBtn,
            SIGNAL(clicked()),
            this,
            SLOT(onMyQtBtnClicked()));
}

MainWindow::~MainWindow()
{
    delete ui;
}




void MainWindow::on_pushButton_clicked()
{
    //中文输出要使用fromLocal8Bit
    //不然会乱码
    qDebug()<<QString::fromLocal8Bit("按钮点击");
    myDialog *dlg = new myDialog(this);
    dlg->show();

}

void MainWindow::onChangeLabelText()
{
    qDebug()<<QString::fromLocal8Bit("手动添加的按钮处理事件");
    ui->label->setText("Change");//修改label文本
    emit cust_sig_hide_btn();//发起信号
}

void MainWindow::on_cust_sig_hide_btn()
{
    //ui->pushButton->hide();
}


void MainWindow::on_label_2_linkActivated(const QString &link)
{

}

void MainWindow::onMyQtBtnClicked()
{

    myDialog *dlg = new myDialog(this);
    dlg->show();

    qDebug()<<QString::fromLocal8Bit("=======按钮点击");
    //QApplication::exit(0);
}

void MainWindow::on_pushButton_2_clicked()
{
    qDebug()<<QString::fromLocal8Bit("*********按钮点击");
    myDialog dlg;
    int n= dlg.exec();
    if(n==QDialog::Accepted){
        qDebug()<<QString::fromLocal8Bit("*********Accepted");
    }
    if(n==QDialog::Rejected){
        qDebug()<<QString::fromLocal8Bit("*********Rejected");
    }
}


void MainWindow::on_pushButton_3_clicked()
{
    QFileDialog filedlg(nullptr,"open image file","C:\\","ImageFile(*.jpg *.png)");
    //filedlg.setDirectory("c:\\");
    if(filedlg.exec()==QDialog::Accepted){

    }
}

标签:实战,Qt5.12,void,label,pushButton,ui,QWidget,include,MainWindow
From: https://blog.51cto.com/remotedev/6149143

相关文章