大三软件工程小项目-小技术集合-Qt状态栏设置
来源:互联网 发布:js全角数字转半角 编辑:程序博客网 时间:2024/05/17 07:06
服务端源码下载地址为:
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(); //登录Mysql void SelectUser(); //查询注册用户 void SelectRanking(); //查看排行榜 void DeleteUser(); //删除用户 void DeleteUserID(int ID); //删除用户ID void 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检测窗口这样就可以实现时间的走动了。
1 0
- 大三软件工程小项目-小技术集合-Qt状态栏设置
- 大三软件工程小项目-小技术集合-大纲
- 大三软件工程小项目-小技术集合-socket环境搭建
- 大三软件工程小项目-小技术集合-客户端界面重画
- 大三软件工程小项目-小技术集合总结
- 大三软件工程小项目-小技术集合-服务端连接MySQL及对表插入、删除、查询
- 大三软件工程小项目-小技术集合-读取XML文件及运行外部程序
- 大三软件工程小项目-小技术集合-tcp服务器搭建及客户端
- 大三软件工程小项目-小技术集合-3DES加密及解密
- Android小项目集合
- qt小项目
- winforms小项目技术
- winforms小项目技术
- 通过做小项目来深思软件工程!
- web常用小技术集合
- 为项目设置小图标
- 软件工程考试小抄
- 软件工程小理解
- Oracle索引1--B树索引倒序扫描
- ubuntu 下eclipse无法输入中文的解决思路
- JVM的垃圾回收简单认识
- 利用广播实现强制下线功能
- 洛谷 1073_最优贸易_spfa+dfs
- 大三软件工程小项目-小技术集合-Qt状态栏设置
- STM32
- JavaScript 正则表达式RegExp(text方法/内部类/边界/量词/优先级/replace/trim)
- 深度学习(5):Boltzmann Machine
- 为啥需要Unicode
- 无法获得锁 /var/lib/dpkg/lock...解决方法
- git和github经常使用的命令集合
- java__X的平方根。设计函数int sqrt(int x),计算 xx 的平方根。
- 逆元