我们知道,在windows上通过鼠标双击某应用程序图标,该应用程序往往会以顶层窗口的形式呈现在我们面前,但是对于一个已经打开的非顶层窗口,我们怎么将其激活为顶层窗口呢? 要达到激活,这个必须要满足两个条件,第一,必须要有通知激活的人,这个人必须是另一个应用程序(或同一应用程序的不同示例),他能发送信息给该窗体:第二,该窗体能够解析出该消息.至于一个应用程序如何向另一个应用程序发送消息的方法有很多,如共享内存,网络的方式等等.这里就不做详述,好,闲话少说,我们进入正题,有了前面的两个条件,假设现在…
m_pLoginDlg->hide(); m_pLoginDlg->activateWindow(); //m_pLoginDlg->raise(); m_pLoginDlg->show(); 我们知道,在windows上通过鼠标双击某应用程序图标,该应用程序往往会以顶层窗口的形式呈现在我们面前,但是对于一个已经打开的非顶层窗口,我们怎么将其激活为顶层窗口呢? 要达到激活,这个必须要满足两个条件,第一,必须要有通知激活的人,这个人必须是另一个应用程序(或同一应用程序的不同示例),他…
//重载resizeEvent和moveEvent两个函数,以保证窗体大小和位置改变后能时刻记住其位置 QRect curGemRect = mpWindow->geometry(); //激活mpWindow窗体为桌面的顶层窗体 Qt::WindowStates winStatus = Qt::WindowNoState; if (mpWindow->windowState() & Qt::WindowMaximized) { winStatus = Qt::WindowMaximi…
这几天某同学遇到了一个棘手的问题,困扰了很久.今天终于解决了,我来记录一下坑. 情景:python 使用tkinter为第二层窗体(顶层窗体)中的一个输入框设定默认值时,总是无法设置,而且对输入框获取值,也是空的.没有报错. 解决办法:只需要顶层窗体使用Toplevel,其余代码不变就可以解决.(toplevel本就在tkinter库当中,不需要引入,只需要将上层窗体由tk.Tk()改用tk.Toplevel()即可) 代码示例:底层窗口一个按钮,打开新窗口(顶层窗口),新窗口输入框显示默认值,…
1.创建个子窗体QDialog.在子窗体构造函数添加 Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); this->setParent(parent); this->setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint); this->hide(); } 2.在父窗体调用子窗体 D…
目录 一.概述 二.效果展示 三.功能实现 四.相关文章 原文链接:Qt无边框窗体-模拟模态窗体抖动效果 一.概述 用Qt开发windows客户端界面确实是一大利器,兼顾性能的同时,速度相对来说也不错.再加上qss的辅助,那么一个漂亮的界面就不在话下了. 想要做出漂亮的界面,重写一个标题栏是必不可少的,那么我们肯定是需要使用Qt给我们提供的一个无边框Qt::FramelessWindowHint窗体属性.但是设置了这个属性以后,随之而来的就是一系列的问题,比如说标题栏拖拽需要我们自己搞:窗口放大…
父窗体与子窗体各自的代码如下: 1.  父窗体的代码: void FartherWindow::addactions() { SubWindow subwindow(this); // 把父窗体本身this当成参数传到子窗体 subwindow.clearWindow(); // clearWindow()是子窗体的public方法 subwindow.exec(); } 2.  子窗体的代码: // closeEvent()是子窗体按下关闭按钮时触发的事件,我在这里重写了它 void SubW…
无边框窗体移动://窗体移动API [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam); public const int WM_SYSCOMMAND = 0x…
第一次在cnbogs发文章,这次来个很基础的,主要给小白看. 在c#的winform编程中,我们经常会做登录窗体或欢迎窗体,并把他们作为启动窗体. 但是,我们有可能会遇到一些问题. 请看下面的代码: private void button1_Click(object sender, EventArgs e) { this.Close(); new Form2().Show(); } 这段代码想让form1中的button1在点击后关闭form1,show出form2,但是目的没有达到,form2…
最近开始了一个winform项目,原先一直都是web项目.遇到个问题,就是在框架内,左侧和中间的main都是用panel来实现的form,就是把form窗体打开到panel里,实现左侧是导航,中间是操作区域的效果.中间区域要想控制左侧导航或者顶部导航都是困难的,因为这时没有激活左侧窗体,操作顶部相对容易,因为顶部是父窗体,子窗体操作父窗体的例子很多,百度一下.我之前也写过一篇:winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体. 同样是子窗体相互操作起来挺困难,可以通过设…