猫史档案馆


【Python】Qt窗口(纯代码,不过比较简陋)

用户:唯一的早晨唯一的早晨查看:2 回复:1 评论:2 创建时间:2020-02-15T11:24:08


MainWindow.h文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
    void MySlot();
};
 
#endif // MAINWINDOW_H
MainWindow.cpp文件:
#include "MainWindow.h"
#include <QMenuBar>                   //菜单栏
#include <QMenu>                      //菜单
#include <QAction>                    //菜单项
#include <QDebug>                     //输出
#include <QToolBar>                   // 工具栏
#include <QPushButton>                //按钮
#include <QStatusBar>                 //状态栏
#include <QLabel>                     //标签
#include <QTextEdit>                  //文本编辑区
#include <QDockWidget>                //浮动窗口
#include <QDialog>                    //对话框
#include <QMessageBox>                //标准对话框
#include <QFileDialog>                //文件对话框
 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //菜单栏
         QMenuBar *mBar = menuBar();
         //添加菜单
         QMenu *pFile = mBar->addMenu("对话框");
         //添加菜单项,动作
 
         //模态对话框
           QAction *p1 = pFile->addAction("模态对话框");
           connect(p1,&QAction::triggered,
                   [=]()
           {
                QDialog dlg;
                dlg.exec();
                qDebug() << "模态对话框打开时,无法操作其他";
           }
 
                   );
 
 
           //非模态对话框
           pFile->addSeparator(); //添加分割线
 
           QAction *p2 = pFile->addAction("非模态对话框");
           connect(p2,&QAction::triggered,
                   [=]()
           {
               QDialog *dlg = new QDialog(this);
               dlg->setAttribute(Qt::WA_DeleteOnClose);     //防止内存泄漏,此函数的作用为关闭对话框时自动释放
               dlg->show();
               qDebug() << "非模态对话框打开时,可以操作其他";
           }
 
                   );
 
 
           //关于对话框
           pFile->addSeparator(); //添加分割线
 
           QAction *p3 = pFile->addAction("关于对话框");
           connect(p3,&QAction::triggered,
                   [=]()
           {
                QMessageBox::about(this,"about","充值成功");     //about(父类,标题名,对话框内容);
           }
 
                   );
 
 
           //问题对话框
           pFile->addSeparator(); //添加分割线
 
           QAction *p4 = pFile->addAction("问题对话框");
           connect(p4,&QAction::triggered,
                   [=]()
           {
                QMessageBox::question(this,"question","是否充值",QMessageBox::Ok,QMessageBox::Cancel);     //question(父类,标题名,对话框内容);
           }
 
                   );
 
 
           //文件对话框
           pFile->addSeparator(); //添加分割线
 
           QAction *p5 = pFile->addAction("文件对话框");
           connect(p5,&QAction::triggered,
                   [=]()
           {
               QString path = QFileDialog::getOpenFileName(
                           this,
                           "open",
                           "../",
                           "souce(*.cpp *.h);;"
                           "Text(*.txt);;"
                           "all(*.*)" );
 
               qDebug() << path;
           }
                   );
 
 
    //工具栏  菜单项的快捷方式
           QToolBar *toolBar = addToolBar("toolBar");
           //工具栏添加快捷键
           toolBar->addAction(p1);
            //添加小控件
           QPushButton *b = new QPushButton(this);
           b->setText("新建");
           toolBar->addWidget(b);
           connect(b,&QPushButton::clicked,this,&MainWindow::MySlot);
 
    //状态栏
           QStatusBar *sBar = statusBar();
           QLabel *MyLabel = new QLabel(this);
           MyLabel->setText("第一种添加方式 ");
           sBar->addWidget(MyLabel);
           // addwidget从左往右添加
           sBar->addWidget(new QLabel("addwidget从左往右添加",this));
           sBar->addPermanentWidget(new QLabel("addPermanentWidget从右往左添加",this));
    //文本编辑区
           QTextEdit *MyQTE = new QTextEdit(this);
           setCentralWidget(MyQTE);
    //浮动窗口
           QDockWidget *dock = new QDockWidget(this);
           addDockWidget(Qt::RightDockWidgetArea,dock);
           //给浮动窗口添加文本编辑区
           QTextEdit *MyDockQTE = new QTextEdit(this);
           dock->setWidget(MyDockQTE);
 
}
 
void MainWindow::MySlot(){
    qDebug() << "新建成功";
}
 
MainWindow::~MainWindow()
{
 
}


回复

上一页1 页 / 共 1下一页
爵士OIer爵士OIer

厉害!

点赞0


评论