首页
学习
活动
专区
圈层
工具
发布

【QT】Qt 窗口 (QMainWindow)

综合示例 在窗⼝上创建⼀个菜单栏,在菜单栏中添加⼀些菜单,在某⼀个菜单中添加⼀些菜单项。 (1)在 “mainwindow.cpp” ⽂件中创建菜单和中央控件 创建⼀个菜单栏, ⼀个菜单....在创建⼯具栏的同时,也可以设置⼯具栏的位置,其默认位置是在窗⼝的最上⾯;如上述代码,默认在最上⾯显⽰。...设置停靠的位置 浮动窗⼝是位于中⼼部件的周围。可以通过 QDockWidget类 中提供 setAllowedAreas() 函数设置其允许停靠的位置。...mainwindow.cpp ⽂件中实现:当点击 “新建” 时,弹出⼀个模态对话框; 说明:在菜单项中,点击菜单项时就会触发 triggered() 信号。...⾮模态对话框⼀般在堆上创建,这是因为如果创建在栈上时,弹出的⾮模态对话框就会⼀闪⽽过。

2.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Qt官方示例-拖动图标

    拖动图标示例显示了如何在同一应用程序中的小部件之间以及不同应用程序之间拖放图像数据。   在使用拖放的许多情况下,用户开始从特定的窗口小部件拖放,并将有效负载拖放到另一个窗口小部件上。...在此示例中,我们将QLabel子类化以创建用作拖动源的标签,并将其放置在同时充当容器和放置站点的QWidget中。   另外,当发生拖放操作时,我们希望发送的不仅仅是图像。...DragWidget类的实现   DragWidget构造函数在小部件上设置一个属性,以确保被关闭时将其删除: DragWidget::DragWidget(QWidget *parent) :...,并定义将像素图的位置置于光标下方的热点位置。...关于更多 在QtCreator软件可以找到: 或在以下Qt安装目录找到: C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\widgets\draganddrop\draggableicons

    2.4K31

    【QT】:QMainWindow 窗口

    一个主窗口最多只有一个菜单栏,位于主窗口顶部、主窗口标题栏下面。 菜单栏中包含菜单,菜单中包含菜单项 工具栏本质上就是把菜单中一些比较常用的选项直接放到工具栏里,直接点工具栏中的按钮就能快速生效。...因为当前 QMenu 是长在 QMenuBar 上的,此时文本就不显示,图标会覆盖文本。...在创建工具栏的同时,也可以设置工具栏的位置,其默认位置是在窗口的最上面;如上述代码,默认在最上面显示。...一般位于主窗口的最底部,一个窗口中最多只能有一个状态栏。在 Qt 中,状态栏是通过 QStatusBar 类来实现的。...//exec()函数中,Qt接收并处理用户和系统的事件,并且将他们传递给适当的窗口部件。

    2.3K10

    Python Qt GUI设计:UI界面可视化组件、属性概述(基础篇—3)

    cursor属性 cursor属性保存组件的鼠标光标形状,当鼠标位于该组件上时就会呈现该属性设置的光标形状,可取值的范围及含义如下图所示: mouseTracking属性 mouseTracking属性用于保存是否启用鼠标跟踪...如果部件接受拖放,则在鼠标拖放时,拖放事件会发送给鼠标当前光标下接受拖放的第一个部件。 如果组件设置了acceptDrops属性为True,则就是通知系统该组件可接受鼠标拖放事件。...statusTip属性 statusTip属性保存statusTip提示信息,statusTip提示信息在鼠标放到控件上时在窗口的状态栏显示提示信息,如果窗口无状态栏则不显示。...whatsThis的帮助信息一般在组件获得焦点后按Shift+F1弹出显示,如果这个快捷键被别的功能占用,则whatsThis的帮助信息可能无法展示。...inputMethodHints属性 inputMethodHints属性只对输入组件有效,输入法使用它来检索有关输入法应如何操作的提示,例如,如果设置了只允许输入数字的标志,则输入法可能会更改其可视组件

    7.4K50

    Fdog系列(四):使用Qt框架模仿QQ实现登录界面,界面篇。

    小提示: 如果你想让某个控件特别的长,或特别的短,可以试试设置他们的最大值最小值,如果控件,例如按钮,在水平控件中宽会缩放自如,而高则不然,原因是什么呢?...差了忘了最主要的,如何取消系统标题,在构造函数中,为窗体设置Flags。...添加两个头文件 #include #includeQMouseEvent> 在头文件中添加三个函数和两个变量。...(QMouseEvent *event);//鼠标移动 void mouseReleaseEvent(QMouseEvent *event);//鼠标释放 并对其进行实现 void Login:...按钮上的文字会向右上角晃动,但是当我们添加了自定义的图片,该效果则消失,如何做到这一点,可以使用padding-left:2px; padding-top:2px;来实现。

    5.3K52

    【QT】QT界面的美容院 -- QSS

    样式优先级 如果全局样式和指定控件样式冲突,则指定控件样式优先展示 这里就不做演示了 在 CSS 中也存在类似的优先级规则。...可以看到按钮的文本颜色已经是红色了 ② 但是 如果把上述样式代码修改为下列代码 a.setStyleSheet(".QWidget{color:red;}"); 【使用 id 选择器】 在开发中,如果期望不同的控件样式不同...当某个控件身上,通过类型选择器和 ID 选择器 设置了冲突的样式 时,ID 选择器样式优先级更高(遵循局部优先) 同理,如果是其他的多种选择器作用同一个控件时出现冲突的样式,也会涉及到优先级问题。...使用 : 的方式 定义伪类选择器 常用的伪类选择器: 伪类选择器 说明 :hover 鼠标放到控件上 :pressed 鼠标左键按下时 :focus 获取输入焦点时 :enabled 元素处于可用状态时...盒模型(Box Model) 这个词 主要来自于 CSS 在文档的 Customizing Qt Widgets Using Style Sheets 的 The Box Model 章节介绍了盒模型

    1.3K10

    【从零开始的Qt开发指南】(十三)Qt 窗口之菜单栏完全攻略:从入门到实战,打造专业级桌面应用菜单系统

    QMenuBar *menubar = this->menuBar(); this->setMenuBar(menubar); // 第二步:创建多个菜单对象 // 参数1:菜单名称(显示在菜单栏上的文本...解决方案:确保项目编码为 UTF-8;如果使用中文菜单名称,建议在.pro 文件中添加QT += core gui widgets并确保编译器支持中文。...setToolTip ():设置鼠标悬停时的提示信息。 setStatusTip ():设置在状态栏显示的提示信息。...用户体验优化:在新建、打开、退出时询问用户是否保存未保存的内容,避免数据丢失。...建议在实际开发中多尝试不同的功能组合,灵活运用 Qt 的 API,打造出更具特色的应用程序。 如果你在开发过程中遇到问题,欢迎在评论区留言交流。

    45221

    Qt实战:云曦日历篇

    日程管理: 双击所要建立日程的时间,会弹出一个日程编辑框,如图4所示,输入所要建立的日程后,点击主界面的加号按钮,即可将当前日程显示出来,当然,要删除的话,点击减号即可。...其不仅并提供了登录系统,用于管理用户信息,而且还附加了双击特效,用于玩乐和观赏,以及日程管理,可以对用户当前行程进行管理和优化,界面美观,功能实用,且附属功能也足够丰富,是一款值得使用的软件。")...ui->calendarWidget->setMinimumDate(date);}//托盘 void Calendar_Main::tray() { //托盘 menu = new QMenu...,希望通过这些文章能够使大家的Qt软件更加美观和完美 !!!...另,如果大家有时间的话,也可以在个人主页中的专栏部分,查看我的Qt界面优化专栏与Qt功能优化专栏哦,里面分别存放有Qt相关的实战软件和相对实用的附属功能,大家感兴趣可以看看(๑>؂<๑) 另附Qt界面优化

    1.9K30

    Qt编写安防视频监控系统9-自动隐藏光标

    ,和当前时间比较,如果超过了鼠标未操作隐藏时间,则隐藏鼠标,在Qt中提供了方法qApp->setOverrideCursor(Qt::BlankCursor);这样设置个空白的鼠标指针就表示隐藏鼠标,如果需要恢复调用...利用特殊的录像处理模式,可对图像进行录入、回放、处理等操作,使录像效果达到最佳。 视频监控系统由实时控制系统、监视系统及管理信息系统组成。...实时控制系统完成实时数据采集处理、存储、反馈的功能;监视系统完成对各个监控点的全天候的监视,能在多操作控制点上切换多路图像;管理信息系统完成各类所需信息的采集、接收、传输、加工、处理,是整个系统的控制核心...高度可定制化,用户可以很方便的在此基础上衍生自己的功能,支持linux系统。...QUIHelper::setCode(); //设置翻译文件 QUIHelper::setTranslator(); QUIHelper::setTranslator(":/image/widgets.qm

    1.9K20

    QACTION_QA百科

    QAction::MenuRole类型的枚举主要描述了在Mac OS X系统上,action如何移动到应用程序的菜单上。设置这个值只对菜单上的直接菜单有效,对子菜单无效。...例如,如果你有一个Left Align的action,一个Right Align的action,一个Justify的action, 以及一个Center action,在统一时刻所有这些actions只能有一个被激活...正如上面提到的,action group默认是互斥的;它确保在同一时刻只有一个action会被选中。...那么以后当action被添加到QToolBar上时,就会自动将该自定义的widget添加到QToolBar上。...Mac OS X:在Mac OS X上,如果你将一个widget添加到应用程序菜单栏的某个菜单上,那么该widget可以显示出来,并且可以实现功能,只是有一些限制: 1、该widget的父对象不再是QMenu

    1.9K20

    Qt5-QtWidgets篇

    / 运行 ctrl + r 编译 ctrl + b 查找 ctrl + f 帮助文档 F1 自动对齐 ctrl + i 同名的.h和.cpp切换 F4 按钮 按钮常用API show() 以顶层方式弹出窗口控件...MainWindow 菜单栏 QMenuBar * 菜单栏最多只能有一个 + QMenuBar * bar = menuBar(); setMenuBar(bar); + 创建菜单 * QMenu...QMouseEvent >(QEvent中行参); 但是尽量别拦截 事件过滤器 在app到事件分发器前还能做个过滤 使用方式 给控件安装时间过滤器 installEventFilter(this)...objectName指定的值 伪状态 :active 当小部件驻留在活动窗口中时,将设置此状态 :checked 该控件被选中时候的状态 :hover 鼠标在控件上方 :pressed...该控件被按下时的状态 :disabled 该控件禁用时的状态 :first 该控件是第一个(列表中) :focus 该控件有输入焦点时 动画 QPropertyAnimation //

    2.2K20

    Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)

    1、菜单栏 1.1、Qt Creator创建菜单栏 双击菜单栏上的“在这里输入”,输入文字,最后按回车键即可生成菜单。...1.2、 菜单栏类创建菜单栏 在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。...在设计菜单系统时使用的一些重要方法如下表所示: 通个示例了解QMenuBar、QMenu和QAction菜单栏类,示例效果如下所示: 示例中,顶层窗口必须是QMainWindow对象,才可以引用QMenuBar...菜单发射triggered信号,将该信号连接到槽函数proecesstrigger(),该函数接收信号的QAction对象。...单击任何QAction按钮时,QMenu对象都会发射triggered信号。

    9.9K31

    Qt编写安防视频监控系统3-通道交换

    利用特殊的录像处理模式,可对图像进行录入、回放、处理等操作,使录像效果达到最佳。 视频监控系统由实时控制系统、监视系统及管理信息系统组成。...实时控制系统完成实时数据采集处理、存储、反馈的功能;监视系统完成对各个监控点的全天候的监视,能在多操作控制点上切换多路图像;管理信息系统完成各类所需信息的采集、接收、传输、加工、处理,是整个系统的控制核心...在pro文件中可以自由开启是否加载地图。 视频播放可选四种内核自由切换,vlc+ffmpeg+easyplayer+海康sdk,均可在pro中设置。...高度可定制化,用户可以很方便的在此基础上衍生自己的功能,支持linux系统。...) { //如果控件不可见则继续,必须是可见的控件,比如8通道有1-8和9-16两种,通道1和通道9位置一样 if (!

    1.3K30

    【QT】事件分发器 & 事件过滤器

    其返回值为布尔类型,若为 ture,代表拦截,不向下分发。...就会执行 event 函数,而不会执行 mousePressEvent 函数: 二、事件过滤器 在 Qt 中,⼀个对象可能经常要查看或拦截另外⼀个对象的事件,如对话框想要拦截按键事件,不让别的组件接收到...显然,我们可以在 event() 函数 中实现拦 截的操作。由于 event() 函数是 protected 的,因此,需要继承已有类。如果组件很多,就需要重写很多个 event() 函数。...cpp文件; 6、在 UI 文件中选中 Label,右键 ------> 提升为…;当点击 "提升为… " 之后,弹出如下对话框: 接下来按照下图选择即可: 7、在 “mylabel.h” 中声明 ⿏...,在event事件分发时拦截操作 if(e->type() == QEvent::MouseButtonPress) { QMouseEvent* event = static_cast

    1.3K10

    【从零开始的Qt开发指南】(十六)Qt 事件入门:从原理到实战,掌握事件处理的核心秘诀

    前言 在 Qt 开发中,事件是贯穿整个应用程序生命周期的核心概念。无论是用户的鼠标点击、键盘输入,还是系统的定时触发、窗口重绘,本质上都是 Qt 事件在发挥作用。...在 UI 设计界面中,拖入一个QLabel组件,设置其边框(方便观察鼠标进入 / 移出范围),具体属性设置如下: 步骤 2:创建自定义 Label 类 由于我们需要重写QLabel的事件处理函数...在弹出的对话框中,"提升的类名称" 填写MyLabel,"头文件" 会自动填充为mylabel.h 点击 "添加",然后点击 "提升",完成类型替换 接着我们还需要修改一下基类: 步骤...中实现该函数,通过QMouseEvent的成员函数获取事件信息: 步骤 3:运行效果 运行程序后,在 Label 区域点击鼠标左键,应用程序输出栏会打印对应的坐标信息: 2.4 事件处理的注意事项...避免在事件处理函数中执行耗时操作:事件处理函数是在主线程中执行的,如果执行耗时操作(如大量计算、网络请求),会导致 UI 界面卡顿,影响用户体验。

    22520

    Qt学习之路_14(简易音乐播放器)

    对action可以设置其快捷键,提示文本,图标,响应槽函数等。对于widget可以设置其显示内容,提示文本,尺寸属性,对其方式,如果外加网络连接,则也可以设置其是否链接到外部等。...在播放媒体文件时,媒体对象MediaObject会在指定的时间间隔发送tick()信号,这个时间间隔可以使用setTrickInterval()函数来进行设置。...因为只有在LoadingState完成后才能获得元数据,所以可以先调用解析器的setCurrentSource()函数为其设置一个媒体源,然后关联它的stateChanged()信号,等其进入到StoppedState...if (sources.count() == 0) { // 如果没有在播放歌曲,则播放和停止按钮都不可用 //(因为可能歌曲正在播放时清除了播放列表)...*event) { //移动鼠标到歌词上时,会显示手型 //event->buttons()返回鼠标点击的类型,分为左击,中击,右击 //这里用与操作表示是左击 if

    2.4K30
    领券