求教Qt弹出日历框的实现方法

加盾男爵 2018-02-05 11:06:46
Qt的QDateTimeEdit,在设置了显示日历后,就可以点击控件,然后在控件的右下角弹出一各日历框,我想问下,在一个类,如何实现在他的右下角弹出一个对话框(无论这个类位于父窗体的什么位置),用用信号与槽可以很容易实现,但这样需要修改父类的代码(在父类中添加信号与槽,使得日历对话框移动到准确的位置并显示),我想问下有没有办法想QdateTimeEdit这样,不需要修改父类的代码,就可以一个窗体的右下角弹出另一个对话框
...全文
2364 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
_LinGM 2018-03-08
  • 打赏
  • 举报
回复
上面的MyPushButton(QWidget* parent)那行,改成MyPushButton(QWidget* parent = 0) : QPushButton(parent){}
_LinGM 2018-03-08
  • 打赏
  • 举报
回复
继承一个自己的控件类,来实现里面实现窗口的位置移动。比如继承一个Qpushbutton类为MyQPushButton,在pushbutton点击事件里面实现窗口的弹出和移动. class MyPushButton : Public QPushButton { public: MyPushButton(QWidget* parent) { connect(this, &MyPushButton : clicked, this, &MyPushButton ::myClick()) } private slot: void myClick() { QWidget* w = new Qwidget(); w->move(//w要显示的位置,可以通过MyPushButton控件的位置计算初这个值); w->show(); eimt MyClicked();//此处的发送一个自定义信号,以方便父窗口做某种使用 } signals: void MyClicked(); }; 纯手打格式可能有错误,头文件之类的没有写,大概思路就是这样。将你ui界面的QPushButton控件提升成这个控件类,效果是点解控件,控件下方自动弹出一个上面定义的QWidgt页面。
加盾男爵 2018-02-27
  • 打赏
  • 举报
回复
引用 4 楼 YIZI_LinRL 的回复:
我理解的意思是:有个控件在父窗口中,点击这个控件,在这个控件下方弹出一个widget窗口? 点击这个控件,获取这个控件的位置,再将widget移动move到控件下方位置。
我就是这个意思,获取控件在父窗体的位置,然后将另一个widget移动到指定的位置,这些工作都需要在父类中完成,但QT的QDateTimeEdit不需要修改父类的代码就可以实现
_LinGM 2018-02-27
  • 打赏
  • 举报
回复
我理解的意思是:有个控件在父窗口中,点击这个控件,在这个控件下方弹出一个widget窗口? 点击这个控件,获取这个控件的位置,再将widget移动move到控件下方位置。
加盾男爵 2018-02-26
  • 打赏
  • 举报
回复
引用 2 楼 qq_35096311 的回复:
你直接使用QT自带的类QCalendarWidget啊
就是应为QT自带的QCalendarWidget不能满足要求,需要自定义一个,所以才出现这个问题
qq_35096311 2018-02-23
  • 打赏
  • 举报
回复
你直接使用QT自带的类QCalendarWidget啊
加盾男爵 2018-02-06
  • 打赏
  • 举报
回复
有人知道么?

16,175

社区成员

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

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