关于Qt窗口的超级简单问题

DIE654456 2010-12-22 03:37:27

用过图形界面系统,例如Windows和Linux的用户都知道,
一个普通的窗口,
最上边会有一个标题,最小化、最大化和关闭按钮。
然后下面是工作区间。

我想问问各位,Qt里的QWidget显示的就是这个效果。
setWindowTitle或者setCaption函数可以设置标题属性,

那么最小化、最大化和关闭这些按钮在QWidget类怎么设置?
或者说
QWidget w;
w.show();

QWidget里怎么把最小化、最大化和关闭这几个东西构造出来显示?
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DIE654456 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dbzhang800 的回复:]
引用楼主 die654456 的回复:
用过图形界面系统,例如Windows和Linux的用户都知道,
一个普通的窗口,
最上边会有一个标题,最小化、最大化和关闭按钮。
然后下面是工作区间。

我想问问各位,Qt里的QWidget显示的就是这个效果。
setWindowTitle或者setCaption函数可以设置标题属性,

那么最小化、最大化和关闭这些按钮在QWidget类怎……
[/Quote]

[Quote=引用 4 楼 zhaoshuzhi 的回复:]
其实你应该看看qt本身带的例子,他那个里面有一个是设置窗口样式的例子。主要是运用了设置窗口标志,代码如下:setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);

关于WindowFlags有好多,你可以在帮助文件里面找一下,里面有设置最大化、最小化和关闭按钮的属性。

你如果想取消某个属性,你可以用QT::W……
[/Quote]

各位,第一个问题:最小化、最大化和关闭这些按钮在QWidget类怎么设置?你们回答了。
第二个问题:
QWidget w;
w.show();
QWidget里怎么把最小化、最大化和关闭这几个东西构造出来显示?
是系统怎么构造出来显示,而不是说我们编程让它们构造出来显示。
wxj120bw 2010-12-24
  • 打赏
  • 举报
回复
标题栏的处理一般是由系统来处理的,如果用于不喜欢系统下标题栏的风格,可以自定义自己的标题栏,那么标题栏的功能就会用用户来处理。
dbzhang800 2010-12-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 die654456 的回复:]
第二个问题:
QWidget w;
w.show();
QWidget里怎么把最小化、最大化和关闭这几个东西构造出来显示?
是系统怎么构造出来显示,而不是说我们编程让它们构造出来显示。
[/Quote]

这些东西属系统装饰器,不归你的QWidget管辖。你的QWidget只能用flags通知窗口系统,它期待哪些装饰部件。

这些flags在 QWidget 中被转换成本地系统的flags。比如windows下:WS_CAPTION WS_MINIMIZEBOX WS_MAXIMIZEBOX,然后传递给系统API,比如 CreateWindow 或 SetWindowLong 等等

至于系统如何根据这些构造装饰器,估计你只能深入去研究比那些api更底层的东西了
yeqiufendou132 2010-12-24
  • 打赏
  • 举报
回复
想了解一下
在水一方 2010-12-23
  • 打赏
  • 举报
回复
其实你应该看看qt本身带的例子,他那个里面有一个是设置窗口样式的例子。主要是运用了设置窗口标志,代码如下:setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint);

关于WindowFlags有好多,你可以在帮助文件里面找一下,里面有设置最大化、最小化和关闭按钮的属性。

你如果想取消某个属性,你可以用QT::Window | ~Qt::Close来取消关闭按钮
dbzhang800 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 die654456 的回复:]
用过图形界面系统,例如Windows和Linux的用户都知道,
一个普通的窗口,
最上边会有一个标题,最小化、最大化和关闭按钮。
然后下面是工作区间。

我想问问各位,Qt里的QWidget显示的就是这个效果。
setWindowTitle或者setCaption函数可以设置标题属性,

那么最小化、最大化和关闭这些按钮在QWidget类怎么设置?
或者说
QWidget ……
[/Quote]
你说的系统为顶级窗口提供的窗口装饰器,与其有关的设置具体看 Qt::WindowFlags
DIE654456 2010-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wyjam 的回复:]
没有图标可以自己加标签或者按钮,实现。showMaximized();showMinimized ()
[/Quote]
偶说的是系统自带的,QWidget的默认实现哦。右上角那几个东西怎么构造出来显示的呢?
wyjam 2010-12-23
  • 打赏
  • 举报
回复
没有图标可以自己加标签或者按钮,实现。showMaximized();showMinimized ()

16,215

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧