#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QDateTime>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QTimer qtimer;
private slots:
void ExeClose();
void TimerProc();
void ReLogin();
};
#endif // MAINWINDOW_H
mainwindow.h
#include "mainwindow.h"
#include "login.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionClose, SIGNAL(triggered()), this, SLOT(ExeClose()));
connect(ui->actionRelogin, SIGNAL(triggered()), this, SLOT(ReLogin()));
connect(&qtimer,SIGNAL(timeout()),SLOT(TimerProc()));
qtimer.start(1000);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::ExeClose()
{
ui->statusBar->showMessage("Close MainWindow", 3000);
close();
}
void MainWindow::TimerProc()
{
ui->statusBar->showMessage(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss zzz"));
}
void MainWindow::ReLogin()
{
Login * LoginFrm = new Login(this);
LoginFrm->setModal(true);
LoginFrm->showNormal();
}
mainwindow.cpp
设置新界面
#ifndef LOGIN_H
#define LOGIN_H
#include <QDialog>
#include <QLineEdit>
#include <QGridLayout>
#include <QPushButton>
#include <QFileDialog>
namespace Ui {
class Login;
}
class Login : public QDialog
{
Q_OBJECT
public:
explicit Login(QWidget *parent = 0);
~Login();
private:
Ui::Login * ui;
QLineEdit * p_lineEdit;
QGridLayout * p_MainLayOut;
QPushButton * p_QPushButton;
private slots:
void ShowFile();
};
#endif // LOGIN_H
login.h
扫描二维码关注公众号,回复:
11002273 查看本文章
#include "login.h"
#include "ui_login.h"
Login::Login(QWidget *parent) :
QDialog(parent),
ui(new Ui::Login)
{
ui->setupUi(this);
p_lineEdit = new QLineEdit(this);
p_MainLayOut = new QGridLayout(this);
p_QPushButton = new QPushButton(this);
p_MainLayOut->addWidget(p_lineEdit, 0, 0);
p_MainLayOut->addWidget(p_QPushButton, 0, 1);
connect(p_QPushButton, SIGNAL(clicked()), this, SLOT(ShowFile()));
}
Login::~Login()
{
delete ui;
}
void Login::ShowFile()
{
QString FileName = QFileDialog::getOpenFileName(0, "打开文件", "", "C++ Files(*.cpp)");
p_lineEdit->setText(FileName);
}
login.cpp
ui 界面代码
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>898</width>
<height>563</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget"/>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>898</width>
<height>23</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
<property name="title">
<string>File</string>
</property>
<addaction name="actionSave"/>
<addaction name="actionSave_2"/>
<addaction name="separator"/>
<addaction name="actionRelogin"/>
</widget>
<widget class="QMenu" name="menuClose">
<property name="title">
<string>Close</string>
</property>
<addaction name="actionClose"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuClose"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionSave">
<property name="text">
<string>Open</string>
</property>
</action>
<action name="actionSave_2">
<property name="text">
<string>Save</string>
</property>
</action>
<action name="actionRelogin">
<property name="text">
<string>ReLogin</string>
</property>
</action>
<action name="actionClose">
<property name="text">
<string>Close</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Login</class>
<widget class="QDialog" name="Login">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>30</x>
<y>240</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Login</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Login</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>
login.ui
最后主函数 main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "login.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
///*
Login * LoginFrm = new Login();
LoginFrm->setModal(true);
LoginFrm->show();
//*/
w.show();
return a.exec();
}
运行结果如下
1.显示时间
2.退出界面
3.产生新窗口 和 上传本地文件
自己还是太菜 害