【Qt编程】Qt学习之Window and Dialog Widgets

Qt Creator 提供的默认基类只要QMainWindow、QWidget和QDialog三种。其中,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话框的基类,这两个类都是QWidget的子类。

窗口部件(Widget)是Qt中建立用户界面的主要元素。一个没有嵌入到其它部件的部件称为窗口(如QMainWindow、QDialog),而一般窗口有边框、标题栏,当然也可以没有。在Qt中,主窗口和对话框窗口是最常见的窗口类型。

Primary and Secondary Windows

任何没有父部件的部件就是窗口,而且在大多数平台上会显示在桌面的任务栏上。与窗口相对的是非窗口部件,又称子部件(窗口部件称为顶级部件),如标签label、按钮button。子部件一般放在父部件上,不会在任务栏上显示。

Main Windows and Dialogs

QMainWindow都有自己的布局,我们可以在上面添加菜单栏、工具栏、浮动窗口和状态栏。其中心部分可以放置任何子部件。对话窗口一般用于子部件,用来向用户显示选择和提示消息。另外,Qt提供了许多标准的对话框窗口如文件选择对话框、字体选择对话框等等。

主窗口和对话框都可以通过Qt Designer来进行可视化设计,这种方法比写代码快得多。通过Qt Designer来进行可视化设计,然后阅读通过uic编译ui文件生成的代码,有助于我们学习Qt。

Window Geometry

窗口的默认大小就是它所包含的子部件的大小,因此如果我们需要设置窗口的大小,Qt提供了专门的函数来实现此功能。而这些函数又分为是否包含边框和标题栏这两种情况:

包含框架: x(), y(), frameGeometry(), pos(), and move().

不包含框架:geometry(), width(), height(), rect(), and size().

下图显示了一些关于窗口布局函数的使用范围:

原文:http://blog.csdn.net/tengweitw/article/details/20141721

作者:nineheadedbird

时间: 2025-01-21 01:16:35

【Qt编程】Qt学习之Window and Dialog Widgets的相关文章

【Qt编程】基于Qt的词典开发系列--后序

从去年八月份到现在,总算完成了词典的编写以及相关技术文档的编辑工作.从整个过程来说,文档的编写比程序的实现耗费的时间更多.基于Qt的词典开发系列文章,大致包含了在编写词典软件过程中遇到的技术重点与难点.每篇文章都完成了一个小的功能,所给的代码都基本上是可以独立运行的.本系列文章对于想要自己动手完成词典软件的程序员来说具有很好的参考价值,对于想要编写其它软件的人来说也具有参考意义. 词典软件制作的初衷 在2013的年终总结中,我提过想要学习一门界面编程语言,后来就选中了Qt.于是在2014年上半年

常见的几个Qt编程问题的处理

1.如何在窗体关闭前自行判断是否可关闭答:重新实现这个窗体的closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent *event){       if (maybeSave())       {              writeSettings();              event->accept();       }       else       {              event->ignore(); 

qt-Linux下QT编程思想,工作流程

问题描述 Linux下QT编程思想,工作流程 大家好!刚入门linux,想问一下大家QT在linux中编程的大概思想是什么啊?或者说是工作流程?比如说是如何判断屏幕动作发生的或者动作发生是如何处理的?希望大家赐教 解决方案 学过qt吗,用一个星期学下,你就发现qt其实很简单,我这里有全套qt教程,可以给你,QQ1119331234需要加我 解决方案二: http://www.pudn.com/downloads562/ebook/detail2314408.html 解决方案三: QT在嵌入式L

qt-关于QT编程的自定义QListwidgetitem的问题,求大神

问题描述 关于QT编程的自定义QListwidgetitem的问题,求大神 !添加前是这样的图片说明 !添加后每个item都改变了 图片说明

Qt编程,Sybase数据库,编码问题!!!

问题描述 Qt编程,Sybase数据库,编码问题!!! Qt中...读取数据库数据到应用程序出现乱码,是Sybase数据库,用ODBC连接,Sybase用的字符编码是iso_1,ODBC字符编码格式不知道,求对编码格式精通的大神大牛解答,万分感谢,图片已经上传! 解决方案 Qt数据库编程Qt之数据库编程 解决方案二: http://blog.csdn.net/andkylee/article/details/5393122

qt编程 如何给自定义item控件进行布局,是继承与graphicsitem的。

问题描述 qt编程 如何给自定义item控件进行布局,是继承与graphicsitem的. qt编程 如何给自定义item控件进行布局,这个控件是继承自graphicsitem中的 麻烦告知下 谢谢了 解决方案 http://blog.csdn.net/foruok/article/details/33738227

qt编程里面的treeview显示的问题

问题描述 qt编程里面的treeview显示的问题 itemProject->setChild(itemPd->index().row(),1,new QStandardItem(QString(QLatin1String(ret)))); 用这句话添加目录的第二列信息,界面变得不规则,如下图: 用itemProject->setChild(itemPd->index().row(),1,new QStandardItem(QStringLiteral("12"

Qt快速入门学习笔记(基础篇)

本文基于Qter开源社区论坛版主yafeilinux编写的<Qt快速入门系列教程目录>,网址:http://bbs.qter.org/forum.php?mod=viewthread&tid=193.参考书为基于该系列教程<Qt Creator快速入门>和<Qt及Qt Quick开发实战精解> 1.关联Qt库.如果是分别安装的Qt Creator和Qt库,而不是安装集成Qt Creator和Qt库的SDK,则需要手动关联Qt库.打开工具→选项菜单,然后选择&qu

【Qt编程】基于Qt的词典开发系列&amp;lt;五&amp;gt;--无边框窗口的拖动

       在上一篇文章中,我们讲述了如何进行无边框窗口的缩放与拖动,而在一些情况下,我们的窗口只需要进行拖动也不需要改变其大小,比如:QQ的登录窗口.本来在上一篇文章中已经讲述了如何进行窗口的拖动,但是却与窗口的缩放相关的程序放在一起,下面专门单独分离出来.       窗口的拖放只涉及到鼠标事件:按下操作.释放操作和移动操作,因此只需要重写这三个函数.由于程序比较简单,并且注释也比较详细,就不作过多介绍.新建一个基类为QWidget的Qt Gui应用程序,只需修改widget.h和widg