Qt 怎么获取系统拖盘的鼠标进入和离开事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 怎么获取系统拖盘的鼠标进入和离开事件相关的知识,希望对你有一定的参考价值。
参考技术A 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("Java1.6.0托盘技术演示"); try // 将LookAndFeel设置成Windows样式 UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); catch (Exception ex) ex.printStackTrace(); pane = new JPanel(); button = new JButton("缩小到托盘"); button.setEnabled(false); label = new JLabel("本操作系统不支持托盘"); pane.add(label); pane.add(button); if(SystemTray.isSupported()) // 如果操作系统支持托盘 this.tray(); this.getContentPane().add(pane); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 200); this.setVisible(true); /** * 托盘相关代码 */ private void tray() label.setText("本操作系统支持托盘"); button.setEnabled(true); tray = SystemTray.getSystemTray(); // 获得本操作系统托盘的实例 ImageIcon icon = new ImageIcon("images/icon.gif"); // 将要显示到托盘中的图标 PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单 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”,“弹出菜单”来构造一个托盘图标 */ trayIcon = new TrayIcon(icon.getImage(), "Java1.6.0托盘技术演示", pop); // 点击本按钮后窗口被关闭,托盘图标被添加到系统的托盘中 button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) try tray.add(trayIcon); // 将托盘图标添加到系统的托盘实例中 setVisible(false); // 使窗口不可视 catch (AWTException ex) ex.printStackTrace(); ); /** * 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口 */ trayIcon.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) if(e.getClickCount()==2) // 鼠标双击 tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标 setVisible(true); // 显示窗口 ); show.addActionListener(new ActionListener() // 点击“显示窗口”菜单后将窗口显示出来 public void actionPerformed(ActionEvent e) tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标 setVisible(true); // 显示窗口 ); exit.a 参考技术B 您好,很高兴为您解答:QT 系统托盘图标的示例
void Window::iconActivated(QSystemTrayIcon::ActivationReason reason)
switch (reason)
case QSystemTrayIcon::Trigger:
case QSystemTrayIcon::DoubleClick:
iconComboBox->setCurrentIndex((iconComboBox->currentIndex() + 1)
% iconComboBox->count());
break;
case QSystemTrayIcon::MiddleClick:
showMessage();
break;
default:
;
转载,仅供参考。
以上是关于Qt 怎么获取系统拖盘的鼠标进入和离开事件的主要内容,如果未能解决你的问题,请参考以下文章
Qt事件机制(是动作发生后,一种通知对象的消息,是被动与主动的总和。先处理自己队列中的消息,然后再处理系统消息队列中的消息)
Qt事件机制---信号通过事件实现,事件可以过滤,事件更底层,事件是基础,信号是扩展。