大三软件工程小项目-小技术集合-Qt状态栏设置
生活随笔
收集整理的這篇文章主要介紹了
大三软件工程小项目-小技术集合-Qt状态栏设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
服務端源碼下載地址為:
http://download.csdn.net/detail/qq78442761/9768662
狀態欄是什么地方呢?
如下圖所示:
那么在Qt里面,這個狀態欄該怎么編寫呢?
在mainwindow.h如下(程序源碼打包,在文章的最頂端)
/** 南京郵電大學通達學院 計算機科學與技術(嵌入式)* 142203 第六組實驗 */#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QLabel> #include <QString> #include <QSystemTrayIcon> #include <QCloseEvent> #include <QIcon> #include <QFile> #include <QFileDialog> #include <QIODevice> #include <QTextStream> #include <QProcess> #include <QStringList> #include <QByteArray> #include "connmysql.h" #include "currtime.h" #include "deleteDialogt.h" #include "docxml.h" #include "server.h"namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();void SetSystray(); //設置托盤程序void closeEvent(QCloseEvent *event);void SetBtn(bool state=false); //設置按鈕狀態void setStatusBar(); //設置狀態欄//socket讀取相關函數 public slots:void slotCreateServer();void updateServer(QString mes,char*, int length);private slots:int OnSystemTrayClicked(QSystemTrayIcon::ActivationReason reason);int OnExit(); //退出程序int OnOpen(); //打開程序void LoginMysql(); //登錄Mysqlvoid SelectUser(); //查詢注冊用戶void SelectRanking(); //查看排行榜void DeleteUser(); //刪除用戶void DeleteUserID(int ID); //刪除用戶IDvoid SaveLog(); //生成日志文件void RunMYSQLProcess(); //打開外部MYSQL程序void RunLOGProcess(); //打開LOG日志文件void disLinkMysql(); //斷開數據庫void AboutPro(); //關于程序 private:Ui::MainWindow *ui;QLabel *statusLabel1; //狀態欄運行時間圖標QLabel *statusLabel2; //狀態欄MYSQL是否連接QSystemTrayIcon *m_systray; //托盤程序QMenu *SystemTrayMenu; //托盤菜單ConnMysql *Mysql; //連接Mysql以及各種操作QStringAndBool MysqlLinkValues; //Mysql連接狀態DeleteDialog *deleteDig; //刪除對話框QProcess m_Process; //打開外部程序DOCXML *ProXML; //獲取外部程序路徑Server *server; //Tcp服務器int port; //端口 };#endif // MAINWINDOW_H可以看到這樣的一個成員函數 void setStatusBar(); //設置狀態欄
他在mainwindow.cpp如下: void MainWindow::setStatusBar() {statusLabel1=new QLabel();statusLabel2=new QLabel(tr("MySQL未連接"));ui->statusBar->addWidget(statusLabel1);ui->statusBar->addWidget(statusLabel2);QString statusLabel1MSG="當前時間:";QDateTime Currtime=QDateTime::currentDateTime();QString CurrTimeStr=Currtime.toString("yyyy-MM-dd hh:mm:ss");statusLabel1MSG.append(CurrTimeStr);statusLabel1->setText(statusLabel1MSG); }
所以,我們可以看到,Qt里面有個ui。那可以直接調用ui->statusBar->addWidget()這個函數來進行添加。
下面可以看到,這個時間是怎么怎么。
更具這樣的邏輯就可以實現獲取當前時間
QString statusLabel1MSG="當前時間:";QDateTime Currtime=QDateTime::currentDateTime();QString CurrTimeStr=Currtime.toString("yyyy-MM-dd hh:mm:ss");statusLabel1MSG.append(CurrTimeStr);statusLabel1->setText(statusLabel1MSG); 那么還有個問題。這個時間不會動啊。。。
這個是此程序的一個缺陷。在此不此不在修改、
只提供如下的思路:
在這個頭文件里面
#include <QTimerEvent> 重寫這個函數 virtual void timerEvent(QTimerEvent* event); //每2s檢測窗口這里要用一個成員變量 int m_timerId; // 每個Timer有一個id
在構造函數里面初始化m_timerEvent m_timerId = startTimer(2000); //每2s檢查一次窗口
然后重寫 virtual void timerEvent(QTimerEvent* event); //每2s檢測窗口 這樣就可以實現時間的走動了。
總結
以上是生活随笔為你收集整理的大三软件工程小项目-小技术集合-Qt状态栏设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL基础E-R图画法(一)
- 下一篇: C/C++之大端小端