void mousePressEvent(QMouseEvent event); 这是鼠标单机事件函数要在h里面声明只要发生鼠标事件都会触发这个函数
void mousePressEvent(QMouseEvent event){
//获得鼠标的x , y 坐标 event->x , event->y
//判断点击的是左键还是右键 event->button()==Qt::LeftButton(Qt::RightButton)
}
再cpp里面实现就好
获取qt窗口外的坐标可以使用
event->globalPos();
event->globalX();
event->globalY();
这三个函数都可以捕抓到整个屏幕的坐标
JDK6/mq612 / public class TrayDemo extends JFrame { private JPanel pane = null; private JButton button = null; // 启动托盘图标的按钮 private JLabel label = null; // 用来显示系统是否支持托盘的信息 private TrayIcon trayIcon = null; // 托盘图标 private SystemTray tray = null; // 本 *** 作系统托盘的实例 public TrayDemo() { super("Java160托盘技术演示"); try { // 将LookAndFeel设置成Windows样式 UIManagersetLookAndFeel("comsunjavaswingplafwindowsWindowsLookAndFeel"); } catch (Exception ex) { exprintStackTrace(); } pane = new JPanel(); button = new JButton("缩小到托盘"); buttonsetEnabled(false); label = new JLabel("本 *** 作系统不支持托盘"); paneadd(label); paneadd(button); if(SystemTrayisSupported()){ // 如果 *** 作系统支持托盘 thistray(); } thisgetContentPane()add(pane); thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE); thissetSize(300, 200); thissetVisible(true); } / 托盘相关代码 / private void tray(){ labelsetText("本 *** 作系统支持托盘"); buttonsetEnabled(true); tray = SystemTraygetSystemTray(); // 获得本 *** 作系统托盘的实例 ImageIcon icon = new ImageIcon("images/icongif"); // 将要显示到托盘中的图标 PopupMenu pop = new PopupMenu(); // 构造一个右键d出式菜单 MenuItem show = new MenuItem("显示窗口"); MenuItem exit = new MenuItem("退出演示"); MenuItem author = new MenuItem("Author"); / TrayIcon有三个构造 TrayIcon(Image image) 用“图标”来构造 TrayIcon(Image image, String tooltip) 用“图标”和“ToolTip”构造 TrayIcon(Image image, String tooltip, PopupMenu popup) 用“图标”,“ToolTip”,“d出菜单”来构造一个托盘图标 / trayIcon = new TrayIcon(icongetImage(), "Java160托盘技术演示", pop); // 点击本按钮后窗口被关闭,托盘图标被添加到系统的托盘中 buttonaddActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { trayadd(trayIcon); // 将托盘图标添加到系统的托盘实例中 setVisible(false); // 使窗口不可视 } catch (AWTException ex) { exprintStackTrace(); } } }); / 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口 / trayIconaddMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if(egetClickCount()==2){ // 鼠标双击 trayremove(trayIcon); // 从系统的托盘实例中移除托盘图标 setVisible(true); // 显示窗口 } } }); showaddActionListener(new ActionListener() { // 点击“显示窗口”菜单后将窗口显示出来 public void actionPerformed(ActionEvent e) { trayremove(trayIcon); // 从系统的托盘实例中移除托盘图标 setVisible(true); // 显示窗口 } }); exita
QWidget widget = (QWidget)(ui->pushButton->parent());
QPalette pal = widget->palette();
QBrush brush = palbackground();
QColor col = brushcolor();
qDebug()<<col;
这样就可以。调试已通过。
在Qt Designer中,你需要在QWidget上添加一个QPushButton,然后将它的Visible属性设置为false。然后在QWidget上添加一个QEventFilter,并在其中实现enterEvent函数,在该函数中将QPushButton的Visible属性设置为true。
enterEvent函数如下:
void MyWidget::enterEvent(QEvent event)
{
ui->pushButton->setVisible(true);
QWidget::enterEvent(event);
}
以上就是关于QT如何获取窗口外的鼠标点击事件,或者鼠标坐标全部的内容,包括:QT如何获取窗口外的鼠标点击事件,或者鼠标坐标、Qt 怎么获取系统拖盘的鼠标进入和离开事件、qt中怎么获取父类QWidget控件的背景色,我是要把它设置到他的子类控件中去的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)