QDialog弹出一个窗口,改变窗口大小

Posted 邓戈麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QDialog弹出一个窗口,改变窗口大小相关的知识,希望对你有一定的参考价值。

 

创建一个QT应用

 

文件->新建文件或项目

Application->Qt Widgets Application

其他下一步

 

image

 

基类选择QDialog

其他下一步

 

image

 

 

 

resize()

改变窗口大小

show()

弹出窗口

 

main.cpp

 

 1 #include "dialog.h"
 2 #include <QApplication>
 3 #include <windows.h>
 4 
 5 class bigsmall
 6 {
 7     Dialog *p;//指针
 8 public:
 9     void setp(Dialog *p)
10     {
11         this->p=p;//设置指针
12     }
13     void set(int x,int y)
14     {
15         this->p->resize(x,y);//改变窗口大小
16     }
17     void tobig()//增大窗口
18     {
19         for(int i=0;i<600;i++)
20         {
21             this->p->resize(i,i);
22         }
23     }
24     void tosmall()//缩小窗口
25     {
26         for(int i=600;i>=0;i--)
27         {
28             this->p->resize(i,i);
29         }
30     }
31 };
32 
33 int main(int argc, char *argv[])
34 {
35     QApplication a(argc, argv);
36 
37     Dialog mydialog1;//创建类,在栈上
38     Dialog mydialog2;//创建类,在栈上
39 
40     //mydialog1.show();//弹出窗口
41     //mydialog2.show();//弹出窗口
42 
43     Dialog *pd1,*pd2;//创建指针指向类,在堆上
44     pd1=new Dialog;
45     pd2=new Dialog;
46 
47     //pd1->show();//弹出窗口,用箭头
48     //pd2->show();//弹出窗口,用箭头
49 
50     pd1->resize(800,600);//改变窗口大小
51     pd2->resize(600,800);//改变窗口大小
52 
53     (*pd1).show();//弹出窗口,用.
54     (*pd2).show();//弹出窗口,用.
55 
56     bigsmall bigsmalla;//创建类
57     bigsmalla.setp(pd1);//设置指针
58     bigsmalla.tobig();//增大窗口
59     bigsmalla.tosmall();//缩小窗口
60 
61     bigsmall bigsmallb;//创建类
62     bigsmallb.setp(pd2);//设置指针
63     bigsmallb.tobig();//增大窗口
64     bigsmallb.tosmall();//缩小窗口
65 
66     return a.exec();
67 }

 

dialog.cpp

 

 1 #include "dialog.h"
 2 #include "ui_dialog.h"
 3 
 4 Dialog::Dialog(QWidget *parent) :
 5     QDialog(parent),
 6     ui(new Ui::Dialog)
 7 {
 8     ui->setupUi(this);
 9 }
10 
11 Dialog::~Dialog()
12 {
13     delete ui;
14 }

 

以上是关于QDialog弹出一个窗口,改变窗口大小的主要内容,如果未能解决你的问题,请参考以下文章

Qt编程求助:有没有啥类似QDialog::exec()之类的能阻塞程序的方法?

Qt 中如何改变Label大小

Qt自定义窗口,继承自QDialog,执行后返回rejected的问题分析

如何使 QDialog 仅针对其非模态父窗口而不是所有祖父窗口成为模态?

在 Mac 上单击主窗口时,QDialog as Popup 不会隐藏

bootstrap:弹出框内的图像超出了窗口大小