سلام به همگی
به عنوان مثال من یه برنامه نوشتم حالا می خوام تو این قسمت ویندوز بزارم منظورم همون قسمته برنامه های پیشه ساعته.
ممنون میشم کمکم کنید.
Printable View
سلام به همگی
به عنوان مثال من یه برنامه نوشتم حالا می خوام تو این قسمت ویندوز بزارم منظورم همون قسمته برنامه های پیشه ساعته.
ممنون میشم کمکم کنید.
از این کلاس http://qt-project.org/doc/qt-5/QSystemTrayIcon.html استفاده کن
مثال ازاستفاده :
http://www.7khatcode.com/985/%DA%AF%...?show=985#q985
ممنون از راهنماییت
از اون لینک Qt که چیزی نفهمیدم :لبخند:
بیشتر از رو مثاله فهمیدم چی شده حالا یه سوال این مثال فقط menu هارو میسازه من چجوری بش بگم که مثلا item 1 رو زد فلان چیزو باز کنه باز کنه
باید سیگنال triggered منو رو connect کنی به SLOT خودت مثلا این کد رو اجرا کن
#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QAction>
#include <QFileDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QSystemTrayIcon *trayIcon=new QSystemTrayIcon();
QMenu *menu=new QMenu("title");
menu->addAction("Open file");
menu->addAction("Exit");
trayIcon->setContextMenu(menu);
trayIcon->setIcon(QIcon("D:\\icon.png"));
trayIcon->show();
trayIcon->showMessage("Title","Hi Im here !");
QObject::connect(menu,&QMenu::triggered,[](QAction* act){
const auto& text = act->text();
if(text=="Exit"){
QApplication::exit();
}
else if(text=="Open file"){
QFileDialog::getExistingDirectory();
}
});
QApplication::setQuitOnLastWindowClosed(false);
return a.exec();
}
من اینو می خواستم اجرا کنم ولی کلی ارور داد
خودت یه نگاهی بنداز
درود.
یه مثال تو خود کیوت هست برای اینکار پوشه ی example ها رو یه نگاه بنداز با یه اسمی مثل tray icon.
محمد.
باید flag
C++11 رو فعال کنید http://www.7khatcode.com/580/%D8%A7%...?show=580#q580
Qt5 به بالا هم باید داشته باشید
ممنون ولی یه مشکل دیگه
#include "mainwindow.h"
#include <QApplication>
#include <QSystemTrayIcon>
#include <QMenu>
#include <QAction>
#include <QFileDialog>
#include <QMessageBox>
int main(int argc, char *argv[])
{
MainWindow w;
QApplication a(argc, argv);
QSystemTrayIcon *trayIcon=new QSystemTrayIcon();
QMenu *menu=new QMenu("TimeUsage");
menu->addAction("Open");
menu->addAction("Exit");
trayIcon->setContextMenu(menu);
trayIcon->show();
trayIcon->showMessage("TimeUsage","TimeUsage Is Here!");
QObject::connect(menu,&QMenu::triggered,[](QAction* act){
const auto& text = act->text();
if(text=="Exit"){
QApplication::exit();
}
else if(text=="Open"){
w.show();
}
});
QApplication::setQuitOnLastWindowClosed(false);
return a.exec();
}
یه ارور میده تا حالا ندیدم:اشتباه:
'w' is not captured
حلش کردم:لبخند:
باید Mainwindow w رو می بردم زیر QAplication
خط 20 هم باید اینطوری مینوشتم
QObject::connect(menu,&QMenu::triggered,[&w](QAction* act){