服務端源碼下載地址為:
http://download.csdn.net/detail/QQ78442761/9768662
狀態(tài)欄是什么地方呢?
如下圖所示:

那么在Qt里面,這個狀態(tài)欄該怎么編寫呢?
在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); //設置按鈕狀態(tài) void setStatusBar(); //設置狀態(tài)欄//socket讀取相關函數(shù)public slots: void slotCreateServer(); void updateServer(QString mes,char*, int length);private slots: int OnSystemTrayClicked(QSystemTrayIcon::ActivationReason reason); int OnExit(); //退出程序 int OnOpen(); //打開程序 void LoginMysql(); //登錄Mysql void SelectUser(); //查詢注冊用戶 void SelectRanking(); //查看排行榜 void DeleteUser(); //刪除用戶 void DeleteUserID(int ID); //刪除用戶ID void SaveLog(); //生成日志文件 void RunMYSQLProcess(); //打開外部MYSQL程序 void RunLOGProcess(); //打開LOG日志文件 void disLinkMysql(); //斷開數(shù)據(jù)庫 void AboutPro(); //關于程序private: Ui::MainWindow *ui; QLabel *statusLabel1; //狀態(tài)欄運行時間圖標 QLabel *statusLabel2; //狀態(tài)欄MYSQL是否連接 QSystemTrayIcon *m_systray; //托盤程序 QMenu *SystemTrayMenu; //托盤菜單 ConnMysql *Mysql; //連接Mysql以及各種操作 QStringAndBool MysqlLinkValues; //Mysql連接狀態(tài) DeleteDialog *deleteDig; //刪除對話框 QProcess m_Process; //打開外部程序 DOCXML *ProXML; //獲取外部程序路徑 Server *server; //Tcp服務器 int port; //端口};#endif // MAINWINDOW_H可以看到這樣的一個成員函數(shù)void setStatusBar(); //設置狀態(tài)欄他在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()這個函數(shù)來進行添加。下面可以看到,這個時間是怎么怎么。
更具這樣的邏輯就可以實現(xiàn)獲取當前時間
QString statusLabel1MSG="當前時間:"; QDateTime Currtime=QDateTime::currentDateTime(); QString CurrTimeStr=Currtime.toString("yyyy-MM-dd hh:mm:ss"); statusLabel1MSG.append(CurrTimeStr); statusLabel1->setText(statusLabel1MSG);那么還有個問題。這個時間不會動啊。。。
這個是此程序的一個缺陷。在此不此不在修改、
只提供如下的思路:
在這個頭文件里面
#include <QTimerEvent>重寫這個函數(shù)virtual void timerEvent(QTimerEvent* event); //每2s檢測窗口這里要用一個成員變量int m_timerId; // 每個Timer有一個id在構造函數(shù)里面初始化m_timerEventm_timerId = startTimer(2000); //每2s檢查一次窗口然后重寫virtual void timerEvent(QTimerEvent* event); //每2s檢測窗口這樣就可以實現(xiàn)時間的走動了。
新聞熱點
疑難解答