• 17800阅读
  • 14回复

新建UI选择QWidget?QMainWindow? QDialog? [复制链接]

上一主题 下一主题
离线yangfanxing
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-25
— 本帖被 XChinux 执行加亮操作(2010-09-01) —

在这里QWidget?QMainWindow? QDialog?
其中后两者是QWidget的直接继承类。
至今好像还没有看出来这三者太大的差别~~~都用混了……
PHPWind好恶心。。。不想看这种界面。。。
离线20044454
只看该作者 1楼 发表于: 2009-08-25
看你要做什么了,自己先建三个比较一下不就可以了
让我做一个Qt的大牛!!!!
离线rqzrqh

只看该作者 2楼 发表于: 2009-08-25
看需求选择
离线l_xin
只看该作者 3楼 发表于: 2009-08-25
用MainWindow在重新设置layout的时候会报错……

反正我是不怎么用MainWindow
离线dbzhang800

只看该作者 4楼 发表于: 2009-08-25
引用第3楼l_xin于2009-08-25 16:03发表的  :
用MainWindow在重新设置layout的时候会报错……
反正我是不怎么用MainWindow


报错应该是没用对

不怎么用,说明你没有用mainwindow的需求,比如你可能不需要菜单、工具栏、浮动/停靠窗口等等
离线l_xin
只看该作者 5楼 发表于: 2009-08-25
引用第4楼dbzhang800于2009-08-25 16:17发表的  :
报错应该是没用对
不怎么用,说明你没有用mainwindow的需求,比如你可能不需要菜单、工具栏、浮动/停靠窗口等等


- -#  被你说中了,我学QT和C++不到2周,QT只是业余时间个人兴趣,所以需求完全木有……

用QMainWindow后,在代码内用setLayout(),Debug的时候它就告诉我layout已经存在,然后显示就是一片空白……
所以我简单地删掉QMainWindow,继承QWidget,一切正常了…………
离线wd007

只看该作者 6楼 发表于: 2009-12-05
基于主窗口的程序,默认已经有了自己的布局管理器。
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线yangfanxing
只看该作者 7楼 发表于: 2009-12-07
引用第6楼wd007于2009-12-05 17:08发表的  :
基于主窗口的程序,默认已经有了自己的布局管理器。


很受教啊各位~
PHPWind好恶心。。。不想看这种界面。。。
离线harbour_1

只看该作者 8楼 发表于: 2010-08-17
恩,高人
离线harbour_1

只看该作者 9楼 发表于: 2010-08-17
QWidget类是所有用户界面对象的基类。 窗口部件是用户界面的一个原子:它从窗口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己的表现。每一个窗口部件都是矩形,并且它们按Z轴顺序排列的。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分。

QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围菜单、工具条和一个状态条。QMainWindow常常被继承,因为这使得封装中央部件、菜单和工具条以及窗口状态变得更容易。继承使创建当用户点击菜单项或者工具条按钮时被调用的槽成为可能。你也可以使用Qt设计器来创建主窗口。

QDialog类是对话框窗口的基类。对话框窗口是主要用于短期任务以及和用户进行简要通讯的顶级窗口。QDialog可以是模式的也可以是非模式的。QDialog支持扩展性并且可以提供返回值。它们可以有默认按钮。QDialog也可以有一个QSizeGrip在它的右下角,使用setSizeGripEnabled()。

QDialog是最普通的顶级窗口。不被嵌入到一个父窗口部件的窗口部件被叫做顶级窗口部件。通常情况下,顶级窗口部件是有框架和标题栏的窗口(尽管如果使用了一定的窗口部件标记,创建顶级窗口部件时也可能没有这些装饰。)在Qt中,QMainWindow和和不同的QDialog的子类是最普通的顶级窗口。

注:摘自
http://www.kuqin.com/qtdocument/qwidget.html#details
http://www.kuqin.com/qtdocument/qmainwindow.html#details
http://www.kuqin.com/qtdocument/qdialog.html
离线米饭拌面

只看该作者 10楼 发表于: 2010-08-17
、、、一时糊涂啊、、、
QQ:32336134
离线XChinux

只看该作者 11楼 发表于: 2010-08-17
如果是顶级对话框,那就基于QDialog创建,如果是主窗体,那就基于QMainWindow,如果不确定,或者有可能作为顶级窗体,或有可能嵌入到其他窗体中,则基于QWidget创建。
当然了,实际中,你还可以基于任何其他部件类来派生。看实际需求了,比如QFrame、QStackedWidget等等。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线demoxie
只看该作者 12楼 发表于: 2010-12-21
高手,学习了
离线xieminghao
只看该作者 13楼 发表于: 2011-02-20
回 6楼(wd007) 的帖子
那请问QMainwindow里插入的控件大小要如何调节?比如我在TOOLBAR中插入了editline,但是太长了,想改短一点,或者我在statusbar里插入了progressbar,想改变它的位置?
离线unizii

只看该作者 14楼 发表于: 2011-02-20
简单说dialog是一个对话框(优化大师),mainw是大型应用程序用的窗体(notepad、explorer等)
快速回复
限100 字节
 
上一个 下一个