Qt窗口操作函数(最大化,全屏,隐藏最大化,最小化)

合集下载

qt 命令规则

qt 命令规则

qt 命令规则
Qt的命令规则主要包括以下几个方面:
1. 命名规则:类名首字母大写,单词之间首字母大写;函数名变量名称首字母小写,单词之间首字母大写。

2. 快捷键:常用快捷键包括注释/取消注释(ctrl + /),运行(ctrl + r),编译(ctrl + b),查找(ctrl + f),整行移动(ctrl + shift + ↑/↓),自动对齐(ctrl + i),同文件中的.h和.cpp之间切换(f4)。

3. 编辑操作:按住Ctrl+Tab可以快速切换已打开的文件;Ctrl+K可以进行全局搜索;Alt+0可以显示或隐藏左侧边条,编辑模式下起作用;
Alt+Shift+0可以显示或隐藏右侧边条。

4. 代码块操作:Ctrl+Shift+<可以折叠代码块,Ctrl+Shift+>可以展开代码块;Ctrl+[可以跳到代码块的头部,Ctrl+]可以跳到代码块的尾部。

5. 查找替换:Ctrl+F可以查找替换当前选中的内容,会列出所有和你选的内容一样的语句。

6. 帮助文档:可以通过F1键快速打开帮助文档。

QT窗体控件的透明度设置(三种方法)

QT窗体控件的透明度设置(三种方法)

QT窗体控件的透明度设置(三种⽅法)1. 整个窗体当设置QT的窗体(QMainWindow, QDialog)时,直接⽤[cpp]1. targetForm->setWindowOpacity()函数即可实现,效果为窗体及窗体内所有控件都透明化了。

⼆、⾃定义页⾯或控件当设置⼀个QWidget(⼀般⾃定义页⾯或控件时⽤QWidget)时,直接设置其窗体透明度⽆法实现透明效果,⽬前找到的⽅法是将整个QWidget 当做图形元素,对该图形元素进⾏设置透明度效果,[cpp]1. QGraphicsOpacityEffect *opacityEffect=new QGraphicsOpacityEffect;2. targetElement->setGraphicsEffect(opacityEffect);3. opacityEffect->setOpacity(0.7);这样处理后就能实现透明化效果。

三、⽤颜⾊中的透明度值设置如果需要将⾃⼰画的形状,控件背景,边框,⽂字等可以⽤颜⾊上⾊的地⽅进⾏透明化,只需要将该部位的颜⾊设置⼀个透明度即可。

[cpp]1. // 画⼀个半透明圆⾓矩形2. QPainter *painter = new QPainter(this);3. painter->setPen(Qt::NoPen);4. painter->setBrush(QColor(0,170,255,100)); // 最后⼀项为透明度5. painter->setOpacity(0.6);6. painter->drawRoundRect(0,0,100,100,10,10);// 画圆⾓矩形[cpp]1. // 设置某控件的背景颜⾊为半透明2. QWidget *widget = new QWidget;// QWidget可以是任意QWidget派⽣的控件3. widget->setAutoFillBackground(true);4.5. QPalette palette;6. palette.setColor(QPalette::Background, QColor(192,253,123,100)); // 最后⼀项为透明度7. //palette.setBrush(QPalette::Background, QBrush(QPixmap(":/background.png")));8. widget>setPalette(palette);9.10. // 如果背景图⽚需要透明化,直接⽤⼀张半透明的png图⽚做背景或者⽤⽅法⼆将整个控件都半透明化。

Qt基本控件-QWidget详解

Qt基本控件-QWidget详解

Qt基本控件-QWidget详解原⽂转载于:QWidget 类的构造函数如下:QWidget(QWidget *parent = 0, Qt::WindowFlags f = 0);其中参数 parent 指向⽗窗⼝,如果这个参数为 0,则窗⼝就成为⼀个顶级窗⼝参数 f 是构造窗⼝的标志,主要⽤于控制窗⼝的类型和外观等,有以下常⽤值。

1)Qt::FramelessWindowHint:没有边框的窗⼝。

2)Qt::WindowStaysOnTopHint:总是最上⾯的窗⼝。

3)Qt::CustomizeWindowHint:⾃定义窗⼝标题栏,以下标志必须与这个标志⼀起使⽤才有效,否则窗⼝将有默认的标题栏。

4)Qt::WindowTitleHint:显⽰窗⼝标题栏。

5)Qt::WindowSystemMenuHint:显⽰系统菜单。

6)Qt::WindowMinimizeButtonHint:显⽰最⼩化按钮。

7)Qt::WindowMaximizeButtonHint:显⽰最⼤化按钮。

8)Qt::WindowMinMaxbuttonHint:显⽰最⼩化按钮和最⼤化按钮。

9)Qt::WindowCloseButtonHint:显⽰关闭按钮。

独⽴窗⼝窗⼝构造的时候如果有 Qt::Window 标志,那么它就是⼀个独⽴窗⼝,否则就是⼀个依附于其他独⽴窗⼝的窗⼝部件。

顶级窗⼝⼀定是独⽴窗⼝,但独⽴窗⼝不⼀定是顶级的,它可以有⽗窗⼝,当⽗窗⼝被析构时它也会随之被析构。

独⽴窗⼝⼀般有⾃⼰的外边框和标题栏,可以有移动、改变⼤⼩等操作。

⼀个窗⼝是否为独⽴窗⼝可⽤下⾯的成员函数来判断:bool isWindow() const; // 判断是否为独⽴窗⼝下⾯这个函数可以得到窗⼝部件所在的独⽴窗⼝。

QWidget *window() const; // 所得所在的独⽴窗⼝当然,如果窗⼝本⾝就是独⽴窗⼝,那么得到的就是⾃⼰。

Qt全屏显示总结

Qt全屏显示总结

QT全屏显示子窗口QT中全屏显示子窗口的方法:QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示,但是他只对窗口模式的部件有用。

子窗口的特征是Qt::SubWindow,不是独立的窗口。

因此对其调用showFullScreen()无效。

通过对子窗口调用:setWindowFlags (Qt::Dialog);或setWindowFlags(Qt::Window);将其设为窗口模式后,即可调用showFullScreen();进行全屏显示了。

相对于子窗口的全屏显示方法,不得不提的是子窗口退出全屏的方法。

MFC中,子窗口退出全屏的方法简单直接,直接调用SetWindowPos()函数将子窗口显示到预定的位置即可。

QT中,直接使用move和resize对窗口定位是没有效果的。

需要先将子窗口设位非窗口模式。

之后再将窗口移到理想位置。

即先调用setWindowFlags(Qt::Dialog);或者setWindowFlags(Qt::SubWindow);在调用move和resize函数。

有人提到退出全屏时,调用showNormal(),再调setWindowFlags(Qt::SubWindow)。

这有两个问题:1)showNormal()也是只对顶级窗口有效。

2)可以考虑先调用showNormal()将窗口设为原来大小,在将窗口设为子窗口模式。

但这样窗口回到父窗口之中也不会显示原来的大小。

QT 如何使窗体初始最大化今天我想让一个窗体初始运行最大化,本以为很简单一个问题,花了差不多两个小时才解决,真是痛苦,问题一但解决,其实非常简单QT 中有一个void QWidget::setWindowState ( Qt::WindowStates windowState )这样的函数,通过它可以设置窗体的初始状态,Qt::WindowStates 一共有下面几种状态:有了这个就非常easy 了,想让窗体最大化,只需要setWindowState(Qt::WindowMaximized);就行了qml中注册和使用C++对象,以及在qml中实现窗体最大最小化在main函数中相关代码如下:QApplication app(argc,argv);QDeclarativeView view;//将app注册到qml中,方便对主程序的退出,最大最小化等相关操作view.rootContext()->setContextProperty("WindowQuitControl",&app);view.rootContext()->setContextProperty("WindowControl",&view);同时需要导入的文件头:#include<QDeclarativeContext>这里将app和QDeclarativeView对象注册到QML中,在QML中通过引用"WindowQuitControl"和"WindowControl"(接下来的qml文件中都会使用这两个名字),就可以像在C++中使用app和view一样!这里的view可以是QDeclarativeView,也可以是QmlApplicationViewer。

Qt之程序最小化托盘显示及操作

Qt之程序最小化托盘显示及操作

Qt之程序最⼩化托盘显⽰及操作展开1.功能说明对于GUI程序,如果想要实现当最⼩化时,程序从任务栏消失,在系统托盘显⽰⼀个图标,表⽰此程序,并能在托盘内通过双击或者菜单使程序界⾯恢复。

2.使⽤的类主要使⽤的此类:QSystemTrayIcon。

其中QSystemTrayIcon是主要操作系统托盘的操作类,通过此类,可以在托盘显⽰指定程序的图标,响应⽤户⿏标的单击,双击,或wheel操作(好像只对X11系统有⽤),显⽰指定消息,显⽰菜单等。

此类中有两个枚举类型,分别如下:enum QSystemTrayIcon::ActivationReason 表述托盘上图标的触发缘由常量值描述QSystemTrayIcon::Unknown 0 未知原因QSystemTrayIcon::Context 1 请求系统托盘的上下⽂菜单QSystemTrayIcon::DoubleClick 2 ⿏标双击QSystemTrayIcon::Trigger 3 ⿏标单击QSystemTrayIcon::MiddleClick 4 ⿏标中间按键enum QSystemTrayIcon::MessageIcon 当显⽰⽓球消息时显⽰的图⽚常量值描述QSystemTrayIcon::NoIcon 0 不显⽰图标QSystemTrayIcon::Information 1 显⽰信息图标QSystemTrayIcon::Warning 2 显⽰告警图标QSystemTrayIcon::Critical 3 显⽰致命图标3.QSystemTrayIcon常⽤函数void setIcon(const QIcon& icon)设置系统托盘的图标void setToolTip(const QString &tip)设置⿏标放到图标上的提⽰⽂字void setContextMenu(QMenu* menu);设置当点击图标弹出的菜单void show()显⽰系统托盘图标4.代码1.实现程序托盘显⽰a)新建⼀个QWidget程序,在界⾯上放⼊⼀个QPushButton,text改为“最⼩化”,如下图:b)给⼯程加⼊Qt Resource资源⽂件,添加⼀个在托盘显⽰的icon图⽚,如图:c)给a中的QPushButton,建⽴槽函数,在槽函数内实现程序最⼩化托盘显⽰void MainWindow::on_pushButton_clicked(){//隐藏程序主窗⼝this->hide();//新建QSystemTrayIcon对象mSysTrayIcon = new QSystemTrayIcon(this);//新建托盘要显⽰的iconQIcon icon = QIcon("../IMClient/Resources/GG64.png");//将icon设到QSystemTrayIcon对象中mSysTrayIcon->setIcon(icon);//当⿏标移动到托盘上的图标时,会显⽰此处设置的内容mSysTrayIcon->setToolTip(QObject::trUtf8("测试系统托盘图标"));//在系统托盘显⽰此对象mSysTrayIcon->show();}运⾏程序,点击按钮最⼩化,可以在系统托盘看到此图标,⿏标移到上⾯,可以见看见代码中所设的”测试系统托盘图标”⽂本,如图:2.实现托盘图标操作最⼩化后显⽰在系统托盘内,此时除了在任务管理器中结束此程序,⽆法再做其他操作,⽽我们还想实现双击图标显⽰主界⾯,单击图标弹出菜单等实现其他操作,此时,就需要使⽤QSystemTrayIcon::ActivationReason属性了。

winform实现窗体最大化并遮盖任务栏的方法

winform实现窗体最大化并遮盖任务栏的方法

winform实现窗体最大化并遮盖任务栏的方法篇11.引言:简述Winform窗体最大化并遮盖任务栏的需求。

2.方法一:设置窗体属性。

1.FormBorderStyle属性设置为None。

2.WindowState属性设置为Maximized。

3.方法二:通过代码控制窗体大小和位置。

1.获取屏幕分辨率和任务栏高度。

2.设置窗体高度为屏幕分辨率减去任务栏高度。

3.设置窗体位置以使窗体遮盖任务栏。

4.注意事项:提及可能遇到的问题及解决方案。

正文在Winform应用程序中,有时我们需要实现窗体最大化并遮盖任务栏的效果。

这种需求可以通过两种方法来实现。

方法一:通过设置窗体属性我们可以通过设置窗体的FormBorderStyle属性和WindowState属性来实现窗体最大化并遮盖任务栏的效果。

具体步骤如下:1.将窗体的FormBorderStyle属性设置为None,这样窗体就没有边框了。

2.将窗体的WindowState属性设置为Maximized,这样窗体就会最大化显示。

方法二:通过代码控制窗体大小和位置我们也可以通过编写代码来控制窗体的大小和位置,以实现窗体最大化并遮盖任务栏的效果。

具体步骤如下:1.获取屏幕的分辨率和任务栏的高度。

2.根据屏幕分辨率和任务栏高度,计算窗体的高度,使其能够遮盖任务栏。

3.设置窗体的位置,使其能够显示在屏幕的合适位置。

无论采用哪种方法,都需要注意一些事项。

例如,需要确保窗体的最大化状态能够正确显示,以及避免出现窗体闪烁等问题。

如果遇到问题,可以通过查找相关资料或向社区寻求帮助来解决。

篇21.引言:简述需求,即在Winform中实现窗体最大化并遮盖任务栏。

2.方法一:设置窗体属性,实现窗体最大化。

3.方法二:通过代码调整窗体大小和位置,遮盖任务栏。

4.示例代码:展示具体的实现过程。

5.总结:总结两种方法的优缺点,根据实际情况选择合适的方法。

正文在Winform应用程序中,有时我们需要实现窗体最大化并遮盖任务栏的效果。

Qt窗口操作函数(置顶、全屏,最大化最小化按钮设置等)

Qt窗口操作函数(置顶、全屏,最大化最小化按钮设置等)

Qt 窗⼝操作函数(置顶、全屏,最⼤化最⼩化按钮设置等)⼀、窗⼝置顶 与 取消置顶void MainWindow::on_windowTopButton_clicked(){ if (m_flags == NULL) { m_flags = windowFlags(); setWindowFlags(m_flags | Qt::WindowStaysOnTopHint); this->show(); } else { m_flags = NULL; setWindowFlags(m_flags); this->show(); }}⼆、全屏显⽰ 与 退出全屏⾸先,在QT 中对于窗⼝显⽰常⽤的有这么⼏个⽅法可以调⽤:showFullScreen() // Qt 全屏显⽰函数showMaximized() // Qt 最⼤化显⽰函数showMinimized() // Qt 最⼩化显⽰函数resize(x, y) // Qt 固定尺⼨显⽰函数setMaximumSize(w, h) // Qt 设置最⼤尺⼨函数setMinimumSize(w, h) // Qt 设置最⼩尺⼨函数但是 和 只对顶级窗⼝有效果,对⼦窗⼝⽆效。

要将⼦窗⼝全屏显⽰可⽤以下⽅法:showFullScreen()showNormal()将要全屏的 Qt ⼦窗⼝调⽤ 将其类型提升为顶级窗⼝模式,然后调⽤ 函数将⼦窗⼝全屏显⽰。

setWindowFlags(Qt::Window)showFullScreen()当然全屏后还要恢复正常,即调⽤ 将⼦窗⼝设置为⾮顶级窗⼝,再调⽤ 还原⼦窗⼝显⽰。

setWindowFlags(Qt::subwindow)showNormal()// 全屏显⽰:VideoWidget->setWindowFlags(Qt::Window);VideoWidget->showFullScreen();// 退出全屏时:VideoWidget->setWindowFlags(Qt::SubWindow);VideoWidget->showNormal();三、窗⼝的 "最⼤化\最⼩化\关闭" 按钮设置1、在 QDialog 中添加 "最⼤化" 和 "最⼩化"按钮在使⽤ QDialog 时,默认情况下只有 “这是什么” 和 “关闭” 按钮,但是我们习惯有最⼤化和最⼩化按钮。

Qt基础教程之多窗口编程介绍

Qt基础教程之多窗口编程介绍

常用的窗体基类是 QWidget、QDialog 和 QMainWindow,在创建 GUI 应用程序时选择窗体基类就是从这 3 个类中选择。

QWidget 直接继承于 QObject,是 QDialog 和 QMainWindow 的父类,其他继承于 QWidget 的窗体类还有 QSplashScreen、QMdiSubWindow 和QDesktopWidget。

另外还有一个类 QWindow,它同时从 QObject 和 QSurface 继承。

这些类的继承关系如图 1 所示。

图 1 几个窗体类的继承关系这些窗体类的主要特点和用途如下:•QWidget:在没有指定父容器时可作为独立的窗口,指定父容器后可以作为容器的内部组件。

•QDialog:用于设计对话框,以独立窗口显示。

•QMainWindow:用于设计带有菜单栏、工具栏、状态栏的主窗口,一般以独立窗口显示。

•QSplashScreen:用作应用程序启动时的splash窗口,没有边框。

•QMdiSubWindow:用于为 QMdiArea 提供一个子窗体,用于MDI(多文档)应用程序的设计。

•QDesktopWidget:具有多个显卡和多个显示器的系统具有多个桌面,这个类提供用户桌面信息,如屏幕个数、每个屏幕的大小等。

•QWindow:通过底层的窗口系统表示一个窗口的类,一般作为一个父容器的嵌入式窗体,不作为独立窗体。

窗体类重要特性的设置窗体显示或运行的一些特性可以通过 QWidget 的一些函数设置,如在前面章节种,介绍对话框的创建和使用时,有如下的代码:1.dlgLocate = new QWDialogLocate(this);2.dlgLocate->setAttribute(Qt::WA_DeleteOnClose);3.Qt::WindowFlags flags=dlgLocate->windowFlags();4.dlgLocate->setWindowFlags(flags | Qt::WindowStaysOnTopHint);这段代码就用到了两个设置函数——setAttribute() 和 setWindowFlags(),它们可以设置窗体的显示特性和运行特性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qt窗口中的一些小技术总结
//Qt主窗口没有最小化,最大化按钮且最大化显示
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TestQtForWinCE w;
w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint&
~Qt::WindowMinimizeButtonHint);
w.showMaximized();
return a.exec();
}
这里的“&~”是取反以后再按位与的意思,下面的“|”是按位或的意思
//同时禁止最大化最小化按钮
Qt::WindowMinMaxButtonsHint
//也禁止关闭
w.setWindowFlags(w.windowFlags() &~ (Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint));
Qt全屏显示函数
1、window.showFullScreen()//此方法只对顶级窗口有效,对子窗口无效
2、yourwidget->setWindowFlags(Qt::window | Qt::FramelessWindowHint); (第一个Qt::window表示此widget是窗口类型,第二个参数使用无框架就是没有标题,状态栏和边框)
Qt最大化显示函数window.showMaximized()
Qt最小化显示函数window.showMinimized()
Qt固定尺寸显示函数window.resize(x,y)
子窗口全屏显示:
QT中窗口部件QWidget成员函数showFullScreen();是用于将窗口部件全屏显示,但是他只对窗口模式的部件有用。

子窗口的特征是Qt::SubWindow,不是独立的窗口。

因此对其调用showFullScreen()无效。

通过对对子窗口调用:setWindowFlags(Qt::Dialog);或setWindowFlags(Qt::Window);将其设为窗口模式后,即可调用showFullScreen();进行全屏显示了。

如果要还原为普通窗口,调用setWindowFlags(Qt::subwindow)将子窗口设置为非顶级窗口,再调用showNormal()还原子窗口显示。

参考:
相对于子窗口的全屏显示方法,不得不提的是子窗口退出全屏的方法。

MFC中,子窗口退出全屏的方法简单直接,直接调用SetWindowPos()函数将子窗口显示到预定的位置即可。

QT中,直接使用move和resize对窗口定位是没有效果的。

需要先将子窗口设位非窗口模式。

之后再将窗口移到理想位置。

即先调用setWindowFlags(Qt::Dialog);或者setWindowFlags
(Qt::SubWindow);在调用move和resize函数。

有人提到退出全屏时,调用showNormal(),再调setWindowFlags (Qt::SubWindow)。

这有两个问题:1)showNormal()也是只对顶级窗口有效。

2)可以考虑先调用showNormal()将窗口设为原来大小,在将窗口设为子窗口模式。

但这样窗口回到父窗口之中也不会显示原来的大小。

获取屏幕宽度和高度
QApplication::desktop()->width() ;
QApplication::desktop()->height() ;
即得到屏幕分辨率,如1024*768,800*600.
2010-08-18 10:58
Qt主窗口没有最小化,最大化按钮且最大化显示
//Qt主窗口没有最小化,最大化按钮且最大化显示
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
TestQtForWinCE w;
w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint&
~Qt::WindowMinimizeButtonHint);
//w.showMaximized();
w.showFullScreen();
return a.exec();
}。

相关文档
最新文档