笔记
我的学习笔记归类整理。包含计算机技术的多个方面,不断补充更新中。
我会慢慢完善各类的内容,并修复和解决各类漏洞和问题
我会尽力补充,如果有想法或者推荐,欢迎留言。
欢迎前往我的博客留言,(*∩——∩*)谢谢。
快速访问我的博客
网站&博客 ----- 我的博客:
同步日期:
2023年6月5日
目录框架全部同步-不定日期同步。
关于学习的一点东西,个人笔记。系统记录见博客:
Home Page: http://blog.shencangblue.com
License: Apache License 2.0
#define MAINWINDOW_H
#include <QMainWindow>
#include <QCloseEvent>
class QLineEdit;
class QDialog;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void newFile(); // 新建操作
bool maybeSave(); // 判断是否需要保存
bool save(); // 保存操作
bool saveAs(); // 另存为操作
bool saveFile(const QString &fileName); // 保存文件
bool loadFile(const QString &fileName); // 加载文件
private slots:
void on_action_New_triggered();
void on_action_Save_triggered();
void on_action_SaveAs_triggered();
void on_action_Open_triggered();
void on_action_Close_triggered();
void on_action_Exit_triggered();
void on_action_Undo_triggered();
void on_action_Cut_triggered();
void on_action_Copy_triggered();
void on_action_Paste_triggered();
void showFindText();
void on_action_Find_triggered();
// void on_action_5_triggered();
private:
Ui::MainWindow *ui;
// 为真表示文件没有保存过,为假表示文件已经被保存过了
bool isUntitled;
// 保存当前文件的路径
QString curFile;
QLineEdit *findLineEdit;
QDialog *findDlg;
protected:
void closeEvent(QCloseEvent *event); // 关闭事件
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPushButton>
#include <QLineEdit>
#include <QGridLayout>
#include <QMessageBox>
#include <QPushButton>
#include <QFileDialog>
#include <QTextStream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *btn = new QPushButton(this);
QLineEdit *le = new QLineEdit(this);
// 新建栅格布局管理器
QGridLayout *layout = new QGridLayout;
// 添加部件,从第0行0列开始,占据1行1列
layout->addWidget(btn, 0, 0, 1, 1);
// 添加部件,从第0行1列开始,占据1行2列
layout->addWidget(le, 0, 1, 1, 2);
// 添加部件,从第1行0列开始,占据1行3列
layout->addWidget(ui->textEdit, 1, 0, 1, 3);
ui->centralWidget->setLayout(layout);
// 初始化文件为未保存状态
isUntitled = true;
// 初始化文件名为"未命名.txt"
curFile = tr("未命名.txt");
// 初始化窗口标题为文件名
setWindowTitle(curFile);
findDlg = new QDialog(this);
findDlg->setWindowTitle(tr("查找"));
findLineEdit = new QLineEdit(findDlg);
QPushButton *btn1 = new QPushButton(tr("查找下一个"), findDlg);
QVBoxLayout *layout1 = new QVBoxLayout(findDlg);
layout1->addWidget(findLineEdit);
layout1->addWidget(btn1);
connect(btn1, &QPushButton::clicked, this, &MainWindow::showFindText);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::newFile()
{
if (maybeSave()) {
isUntitled = true;
curFile = tr("未命名.txt");
setWindowTitle(curFile);
ui->textEdit->clear();
ui->textEdit->setVisible(true);
}
}
bool MainWindow::maybeSave()
{
// 如果文档被更改了
if (ui->textEdit->document()->isModified()) {
// 自定义一个警告对话框
QMessageBox box;
box.setWindowTitle(tr("警告"));
box.setIcon(QMessageBox::Warning);
box.setText(curFile + tr(" 尚未保存,是否保存?"));
QPushButton *yesBtn = box.addButton(tr("是(&Y)"),
QMessageBox::YesRole);
box.addButton(tr("否(&N)"), QMessageBox::NoRole);
QPushButton *cancelBut = box.addButton(tr("取消"),
QMessageBox::RejectRole);
box.exec();
if (box.clickedButton() == yesBtn)
return save();
else if (box.clickedButton() == cancelBut)
return false;
}
// 如果文档没有被更改,则直接返回true
return true;
}
bool MainWindow::save()
{
if (isUntitled) {
return saveAs();
} else {
return saveFile(curFile);
}
}
bool MainWindow::saveAs()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("另存为"),curFile);
if (fileName.isEmpty()) return false;
return saveFile(fileName);
}
bool MainWindow::saveFile(const QString &fileName)
{
QFile file(fileName);
if (!file.open(QFile::WriteOnly | QFile::Text)) {
// %1和%2分别对应后面arg两个参数,/n起换行的作用
QMessageBox::warning(this, tr("多文档编辑器"),
tr("无法写入文件 %1:/n %2")
.arg(fileName).arg(file.errorString()));
return false;
}
QTextStream out(&file);
// 鼠标指针变为等待状态
QApplication::setOverrideCursor(Qt::WaitCursor);
out << ui->textEdit->toPlainText();
// 鼠标指针恢复原来的状态
QApplication::restoreOverrideCursor();
isUntitled = false;
// 获得文件的标准路径
curFile = QFileInfo(fileName).canonicalFilePath();
setWindowTitle(curFile);
return true;
}
void MainWindow::on_action_New_triggered()
{
newFile();
}
void MainWindow::on_action_Save_triggered()
{
save();
}
void MainWindow::on_action_SaveAs_triggered()
{
saveAs();
}
bool MainWindow::loadFile(const QString &fileName)
{
QFile file(fileName); // 新建QFile对象
if (!file.open(QFile::ReadOnly | QFile::Text)) {
QMessageBox::warning(this, tr("多文档编辑器"),
tr("无法读取文件 %1:\n%2.")
.arg(fileName).arg(file.errorString()));
return false; // 只读方式打开文件,出错则提示,并返回false
}
QTextStream in(&file); // 新建文本流对象
QApplication::setOverrideCursor(Qt::WaitCursor);
// 读取文件的全部文本内容,并添加到编辑器中
ui->textEdit->setPlainText(in.readAll());
QApplication::restoreOverrideCursor();
// 设置当前文件
curFile = QFileInfo(fileName).canonicalFilePath();
setWindowTitle(curFile);
return true;
}
// 打开动作
void MainWindow::on_action_Open_triggered()
{
if (maybeSave()) {
QString fileName = QFileDialog::getOpenFileName(this);
// 如果文件名不为空,则加载文件
if (!fileName.isEmpty()) {
loadFile(fileName);
ui->textEdit->setVisible(true);
}
}
}
// 关闭动作
void MainWindow::on_action_Close_triggered()
{
if (maybeSave()) {
ui->textEdit->setVisible(false);
}
}
// 退出动作
void MainWindow::on_action_Exit_triggered()
{
// 先执行关闭操作,再退出程序
// qApp是指向应用程序的全局指针
on_action_Close_triggered();
qApp->quit();
}
// 撤销动作
void MainWindow::on_action_Undo_triggered()
{
ui->textEdit->undo();
}
// 剪切动作
void MainWindow::on_action_Cut_triggered()
{
ui->textEdit->cut();
}
// 复制动作
void MainWindow::on_action_Copy_triggered()
{
ui->textEdit->copy();
}
// 粘贴动作
void MainWindow::on_action_Paste_triggered()
{
ui->textEdit->paste();
}
void MainWindow::closeEvent(QCloseEvent *event)
{
// 如果maybeSave()函数返回true,则关闭程序
if (maybeSave()) {
event->accept();
} else { // 否则忽略该事件
event->ignore();
}
}
void MainWindow::showFindText()
{
QString str = findLineEdit->text();
if (!ui->textEdit->find(str, QTextDocument::FindBackward))
{
QMessageBox::warning(this, tr("查找"),
tr("找不到%1").arg(str));
}
}
void MainWindow::on_action_Find_triggered()
{
findDlg->show();
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QCloseEvent>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void newFile(); // 新建操作
bool maybeSave(); // 判断是否需要保存
bool save(); // 保存操作
bool saveAs(); // 另存为操作
bool saveFile(const QString &fileName); // 保存文件
bool loadFile(const QString &fileName); // 加载文件
private slots:
void on_action_New_triggered();
void on_action_Save_triggered();
void on_action_SaveAs_triggered();
void on_action_Open_triggered();
void on_action_Close_triggered();
void on_action_Exit_triggered();
void on_action_Undo_triggered();
void on_action_Cut_triggered();
void on_action_Copy_triggered();
void on_action_Paste_triggered();
private:
Ui::MainWindow *ui;
// 为真表示文件没有保存过,为假表示文件已经被保存过了
bool isUntitled;
// 保存当前文件的路径
QString curFile;
protected:
void closeEvent(QCloseEvent *event); // 关闭事件
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QPushButton>
#include <QFileDialog>
#include <QTextStream>
#include"QPushButton"
#include"QLineEdit"
#include"QGridLayout"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *btn =new QPushButton(this);
QLineEdit *le =new QLineEdit(this);
QGridLayout *layout= new QGridLayout;
layout->addWidget(btn,0,0,1,1);
layout->addWidget(le,0,1,1,2);
layout->addWidget(ui->textEdit,1,0,1,3);
ui->centralWidget->setLayout(layout);
// 初始化文件为未保存状态
isUntitled = true;
// 初始化文件名为"测试系统.txt"
curFile = tr("测试系统.txt");
// 初始化窗口标题为文件名
setWindowTitle(curFile);
}
void MainWindow::newFile()
{
if (maybeSave()) {
isUntitled = true;
curFile = tr("未命名.txt");
setWindowTitle(curFile);
ui->textEdit->clear();
ui->textEdit->setVisible(true);
}
}
bool MainWindow::maybeSave()
{
// 如果文档被更改了
if (ui->textEdit->document()->isModified()) {
// 自定义一个警告对话框
QMessageBox box;
box.setWindowTitle(tr("警告"));
box.setIcon(QMessageBox::Warning);
box.setText(curFile + tr(" 尚未保存,是否保存?"));
QPushButton *yesBtn = box.addButton(tr("是(&Y)"),
QMessageBox::YesRole);
box.addButton(tr("否(&N)"), QMessageBox::NoRole);
QPushButton *cancelBut = box.addButton(tr("取消"),
QMessageBox::RejectRole);
box.exec();
if (box.clickedButton() == yesBtn)
return save();
else if (box.clickedButton() == cancelBut)
return false;
}
// 如果文档没有被更改,则直接返回true
return true;
}
bool MainWindow::save()
{
if (isUntitled) {
return saveAs();
} else {
return saveFile(curFile);
}
}
bool MainWindow::saveAs()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("另存为"),curFile);
if (fileName.isEmpty()) return false;
return saveFile(fileName);
}
bool MainWindow::saveFile(const QString &fileName)
{
QFile file(fileName);
if (!file.open(QFile::WriteOnly | QFile::Text)) {
// %1和%2分别对应后面arg两个参数,/n起换行的作用
QMessageBox::warning(this, tr("多文档编辑器"),
tr("无法写入文件 %1:/n %2")
.arg(fileName).arg(file.errorString()));
return false;
}
QTextStream out(&file);
// 鼠标指针变为等待状态
QApplication::setOverrideCursor(Qt::WaitCursor);
out << ui->textEdit->toPlainText();
// 鼠标指针恢复原来的状态
QApplication::restoreOverrideCursor();
isUntitled = false;
// 获得文件的标准路径
curFile = QFileInfo(fileName).canonicalFilePath();
setWindowTitle(curFile);
return true;
}
void MainWindow::on_action_New_triggered()
{
newFile();
}
void MainWindow::on_action_Save_triggered()
{
save();
}
void MainWindow::on_action_SaveAs_triggered()
{
saveAs();
}
bool MainWindow::loadFile(const QString &fileName)
{
QFile file(fileName); // 新建QFile对象
if (!file.open(QFile::ReadOnly | QFile::Text)) {
QMessageBox::warning(this, tr("多文档编辑器"),
tr("无法读取文件 %1:\n%2.")
.arg(fileName).arg(file.errorString()));
return false; // 只读方式打开文件,出错则提示,并返回false
}
QTextStream in(&file); // 新建文本流对象
QApplication::setOverrideCursor(Qt::WaitCursor);
// 读取文件的全部文本内容,并添加到编辑器中
ui->textEdit->setPlainText(in.readAll());
QApplication::restoreOverrideCursor();
// 设置当前文件
curFile = QFileInfo(fileName).canonicalFilePath();
setWindowTitle(curFile);
return true;
}
// 打开动作
void MainWindow::on_action_Open_triggered()
{
if (maybeSave()) {
QString fileName = QFileDialog::getOpenFileName(this);
// 如果文件名不为空,则加载文件
if (!fileName.isEmpty()) {
loadFile(fileName);
ui->textEdit->setVisible(true);
}
}
}
// 关闭动作
void MainWindow::on_action_Close_triggered()
{
if (maybeSave()) {
ui->textEdit->setVisible(false);
}
}
// 退出动作
void MainWindow::on_action_Exit_triggered()
{
// 先执行关闭操作,再退出程序
// qApp是指向应用程序的全局指针
on_action_Close_triggered();
qApp->quit();
}
// 撤销动作
void MainWindow::on_action_Undo_triggered()
{
ui->textEdit->undo();
}
// 剪切动作
void MainWindow::on_action_Cut_triggered()
{
ui->textEdit->cut();
}
// 复制动作
void MainWindow::on_action_Copy_triggered()
{
ui->textEdit->copy();
}
// 粘贴动作
void MainWindow::on_action_Paste_triggered()
{
ui->textEdit->paste();
}
void MainWindow::closeEvent(QCloseEvent *event)
{
// 如果maybeSave()函数返回true,则关闭程序
if (maybeSave()) {
event->accept();
} else { // 否则忽略该事件
event->ignore();
}
}
MainWindow::~MainWindow()
{
delete ui;
}
无法解析的外部符号 _WinMain@16
Ctrl+F7 编译的时候没有错误,而F6生成解决方案的时候出现如下两个错误:
1:error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 MSVCRTD.lib
2: error LNK1120: 1 个无法解析的外部命令
出这个错误可能有以下几个原因:
一、新建项目是控制台应用程序而程序通过的是WinMian(及windows入口函数)
因为新建项目的时候选择的是控制台应用程序,控制台应用程序的入口是main。而在.CPP文件中提供的是windows入口函数WinMian。
解决办法:
(1)项目->属性->配置属性->C/C++ ->预处理器 中的【预处理器定义】 删除“_CONSOLE” 添加 “ _WINDOWS”
(2)项目->属性->配置属性->连接器->系统中的【子系统】设置为Windows(/SUBSYSTEM:WINDOWS)
(3)生成->重新生成解决方案
二、WinMain的UNICODE版和ANSI版不匹配
为了支持UNICODE,C运行库对WinMain其实区分了UNICODE版和ANSI版。对UNICODE版的程序,C运行库调用wWinMain,而对于ANSI版的则调用WinMain。
解决办法:
(1)将代码中的 int APIENTRY _tWinMain 替换为 INT WINAPI wWinMain (INT WINAPI wWinMain 替换为 int APIENTRY _tWinMain )
(2)生成->重新生成解决方案
#ifndef LOGINDIALOG_H
#define LOGINDIALOG_H
#include"QDialog"
class QLabel;
class QLineEdit;
class QPushButton;
class LoginDialog : public QDialog
{
Q_OBJECT
public:
explicit LoginDialog(QWidget *parent=0) ;
~LoginDialog();
private:
QLabel *usrLable;
QLabel *pwdLable;
QLineEdit *usrLineEdit;
QLineEdit *pwdLineEdit;
QPushButton *loginBtn;
QPushButton *exitBtn;
private slots:
void login();
};
#endif // LOGINDIALOG_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
};
#endif // MAINWINDOW_H
#include "logindialog.h"
#include"QLabel"
#include"QLineEdit"
#include"QPushButton"
#include"QMessageBox"
LoginDialog::LoginDialog(QWidget *parent):
QDialog(parent)
{
usrLable = new QLabel(this);
usrLable->move(70,80);
usrLable->setText(tr("用户名:"));
usrLineEdit = new QLineEdit(this);
usrLineEdit->move(140,80);
usrLineEdit->setPlaceholderText(tr("好歹输一个吧"));
pwdLable= new QLabel(this);
pwdLable->move(70,130);
pwdLable->setText(tr("密码:"));
pwdLineEdit= new QLineEdit(this);
pwdLineEdit->move(140,130);
pwdLineEdit->setPlaceholderText(tr("好歹输一个吧"));
loginBtn = new QPushButton(this);
loginBtn->move(50,200);
loginBtn->setText(tr("登录"));
exitBtn = new QPushButton(this);
exitBtn->move(210,200);
exitBtn->setText(tr("退出"));
connect(loginBtn,&QPushButton::clicked,this,&LoginDialog::login);
connect(exitBtn,&QPushButton::clicked,this,&LoginDialog::login);
}
LoginDialog::~LoginDialog()
{
}
void LoginDialog::login()
{
if(usrLineEdit->text().trimmed()==tr("user")&&pwdLineEdit->text()==tr("123456"))
{
accept();
}
else
{
QMessageBox::warning(this,tr("红色警戒"),tr("您的输入有误!"),QMessageBox::Yes);
usrLineEdit->clear();
pwdLineEdit->clear();
usrLineEdit->setFocus();
}
}
#include "mainwindow.h"
#include <QApplication>
#include"logindialog.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
LoginDialog dlg;
if(dlg.exec()==QDialog::Accepted)
{
w.show();
return a.exec();
}
else return 0;
}
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
}
MainWindow::~MainWindow()
{
}
import java.util.Random;
public class HelloWorld {
public static void main(String ... args) {
System.out.println(randomString(-229985452)+' '+randomString(-147909649));
}
public static String randomString(int seed) {
Random rand = new Random(seed);
StringBuilder sb = new StringBuilder();
while(true) {
int n = rand.nextInt(27);
if (n == 0) break;
sb.append((char) ('`' + n));
}
return sb.toString();
}
}
··············
没写完好气呀
'''c++
#include<stdio.h>
#include
#include
using namespace std;
#define SN 10
typedef long int datatype_studentnum;
typedef string datatype_name;
typedef long int datatype_phonenum;
typedef struct link_node
{
datatype_name name;
datatype_phonenum pnum;
datatype_studentnum snum;
struct link_node *next;
}node;
node *init()
{
return NULL;
}
node *find(node *head,int i)
{
int j=1;
node *p=head;
if(i<1)
{
return NULL;
}
while(p&&i!=j)
{
p=p->next;
j++;
}
return p;
}
node *insert(node *head,datatype_name name,datatype_phonenum pnum,datatype_studentnum snum,int i)
{
node *p=NULL,*q;
q=find(head,i);
if(p&&i!=0)
{
printf("\n找不到第%d个节点,不能插入%s的通讯录。",i,name);
}
else
{
p=(node*)malloc(sizeof(node));
p->name=name;
p->pnum=pnum;
p->snum=snum;
if(i==0)
{
p->next=head;
head=p;
}
else
{
p->next;
q->next=p;
}
}
return head;
}
node *deletedata(node *head,datatype_name name,datatype_phonenum pnum,datatype_studentnum snum)
{
node *pre=NULL,*p;
if(!head)
{
printf("单链表是空的.");
return head;
}
p=head;
while(p&&p->name!=name){
pre=p;
p=p->next;
}
if(p)
{
if(!pre)
{
head =head->next;
}else
{
pre->next=p->next;
free(p);
}
}
return head;
}
void display(node *head)
{
node *p;
p= head;
if(!head)
{
printf("单链表是空的.");
}else
{
printf("\n输出所有信息:");
while(p)
{
}printf("\n姓名%s\n学号:%d\n联系方式:%d",p->name,p->snum,p->pnum);
p=p->next;
}
}
node *inport()
{ node *head,*s;
datatype_name name;
datatype_phonenum pnum;
datatype_studentnum snum;
head=NULL;
printf("请输入姓名:\n");
scanf_s("%s",&name);
printf("请输入学号:\n");
scanf_s("%d",&snum);
printf("请输入电话:\n");
scanf_s("%d",&pnum);
while (pnum!=0) /以0结束输入/
{ s=(node*)malloc(sizeof(node)); /生成待插入结点/
s->pnum=pnum;
s->name=name;
s->snum=snum;
s->next=head; /将新结点插入到链表最前面/
head=s;
printf("请输入姓名:\n");
scanf_s("%s",&name);
printf("请输入学号:\n");
scanf_s("%d",&snum);
printf("请输入电话:\n");
scanf_s("%d",&pnum);
}
return head; /返回建立的单链表/
}
void ins(node *head){
string s;
long int a,b;
cout<<" *输入执行的操作"<<endl;
cout<<" 1.建立通讯录*"<<endl;
cout<<" *2.插入通讯信息"<<endl;
cout<<" 3.删除信息***"<<endl;
cout<<" 4.显示信息***"<<endl;
cout<<" 0.退出程序***"<<endl;
int c;
cin>>c;
switch(c)
{
case 1: head = init();break;
case 2: {
cin>>s>>a>>b;
}head= insert(head,s,a,b,1);
break;
case 3:
{
cin>>s>>a>>b;
}
head=deletedata(head,s,a,b);break;
case 4: display(head);break;
case 0: exit(1);
default:
cout<<"输入错误";
ins(head);
}}
void main(){
// node *head;
// head=inport();
//// int a[N];
//// for(int i=0;i<N;i++)
//// {
//// a[i]=(NiNiN*9+10000)*i-999;
//// }
////for(int i=0;i<N;i++)
//// {
//// printf("%d\t",a[i]);
//// }
//
// string s[SN];
// for(int i=0;i<SN;i++)
// {
// s[i]="无名氏";
// }
//
// int stu[SN],phonenum[SN];
// for(int i=0;i<SN;i++)
// {
// stu[i]=(SNiSNiSN*9+10000)*i-999;
// }
// for(int i=0;i<SN;i++)
// {
// phonenum[i]=(SNiSNiSN*9+10000)*i-999;
// }
// for(int i=0;i<SN;i++)
// {
// //incsert(head,s[i],stu[i],phonenum[i],i);
//
// }
//display(head);
node *head=NULL,p;
ins(head);
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QPushButton"
#include"QLineEdit"
#include"QGridLayout"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *btn =new QPushButton(this);
QLineEdit *le =new QLineEdit(this);
QGridLayout *layout= new QGridLayout;
layout->addWidget(btn,0,0,1,1);
layout->addWidget(le,0,1,1,2);
layout->addWidget(ui->textEdit,1,0,1,3);
ui->centralWidget->setLayout(layout);
}
MainWindow::~MainWindow()
{
delete ui;
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QAction *openAction = new QAction(tr("&Open"),this);
QIcon icon("://images/pixiv29747483.jpg");
openAction->setIcon(icon);
openAction->setShortcut(QKeySequence(tr("Ctrl+0")));
ui->menu_F->addAction(openAction);
QMenu *menu_E = ui->menuBar->addMenu(tr("编辑(&E)"));
QAction *findAction = new QAction(tr("&Find"),this);
QIcon icon2("://images/pixiv35357360.jpg");
findAction->setIcon(icon2);
findAction->setShortcut(QKeySequence(tr("Ctrl+F")));
menu_E->addAction(findAction);
}
MainWindow::~MainWindow()
{
delete ui;
}
system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。
例如,用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
ASSOC 显示或修改文件扩展名关联。
AT 计划在计算机上运行的命令和程序。
ATTRIB 显示或更改文件属性。
BREAK 设置或清除扩展式 CTRL+C 检查。
CACLS 显示或修改文件的访问控制列表(ACLs)。
CALL 从另一个批处理程序调用这一个。
CD 显示当前目录的名称或将其更改。
CHCP 显示或设置活动代码页数。
CHDIR 显示当前目录的名称或将其更改。
CHKDSK 检查磁盘并显示状态报告。
CHKNTFS 显示或修改启动时间磁盘检查。
CLS 清除屏幕。
CMD 打开另一个 Windows 命令解释程序窗口。
COLOR 设置默认控制台前景和背景颜色。
COMP 比较两个或两套文件的内容。
COMPACT 显示或更改 NTFS 分区上文件的压缩。
CONVERT 将 FAT 卷转换成 NTFS。您不能转换当前驱动器。
COPY 将至少一个文件复制到另一个位置。
DATE 显示或设置日期。
DEL 删除至少一个文件。
DIR 显示一个目录中的文件和子目录。
DISKCOMP 比较两个软盘的内容。
DISKCOPY 将一个软盘的内容复制到另一个软盘。
DOSKEY 编辑命令行、调用 Windows 命令并创建宏。
ECHO 显示消息,或将命令回显打开或关上。
ENDLOCAL 结束批文件中环境更改的本地化。
ERASE 删除至少一个文件。
EXIT 退出 CMD.EXE 程序(命令解释程序)。
FC 比较两个或两套文件,并显示不同处。
FIND 在文件中搜索文字字符串。
FINDSTR 在文件中搜索字符串。
FOR 为一套文件中的每个文件运行一个指定的命令
FORMAT 格式化磁盘,以便跟 Windows 使用。
FTYPE 显示或修改用于文件扩展名关联的文件类型。
GOTO 将 Windows 命令解释程序指向批处理程序中某个标明的行。
GRAFTABL 启用 Windows 来以图像模式显示扩展字符集。
HELP 提供 Windows 命令的帮助信息。
IF 执行批处理程序中的条件性处理。
LABEL 创建、更改或删除磁盘的卷标。
MD 创建目录。
MKDIR 创建目录。
MODE 配置系统设备。
MORE 一次显示一个结果屏幕。
MOVE 将文件从一个目录移到另一个目录。
PATH 显示或设置可执行文件的搜索路径。
PAUSE 暂停批文件的处理并显示消息。
POPD 还原 PUSHD 保存的当前目录的上一个值。
PRINT 打印文本文件。
PROMPT 更改 Windows 命令提示符。
PUSHD 保存当前目录,然后对其进行更改。
RD 删除目录。
RECOVER 从有问题的磁盘恢复可读信息。
REM 记录批文件或 CONFIG.SYS 中的注释。
REN 重命名文件。
RENAME 重命名文件。
REPLACE 替换文件。
RMDIR 删除目录。
SET 显示、设置或删除 Windows 环境变量。
SETLOCAL 开始批文件中环境更改的本地化。
SHIFT 更换批文件中可替换参数的位置。
SORT 对输入进行分类。
START 启动另一个窗口来运行指定的程序或命令。
SUBST 将路径跟一个驱动器号关联。
TIME 显示或设置系统时间。
TITLE 设置 CMD.EXE 会话的窗口标题。
TREE 以图形模式显示驱动器或路径的目录结构。
TYPE 显示文本文件的内容。
VER 显示 Windows 版本。
VERIFY 告诉 Windows 是否验证文件是否已正确写入磁盘。
VOL 显示磁盘卷标和序列号。
XCOPY 复制文件和目录树。
(注意:Microsoft Visual C++6.0 支持system)
#include "mainwindow.h"
#include <QApplication>
#include "logindlg.h"
int main(int argc, char *argv[])
{
// QApplication a(argc, argv);
// MainWindow w;
// w.show();
// return a.exec();
QApplication a(argc, argv);
MainWindow w;
LoginDlg dlg; // 建立自己新建的LoginDlg类的实例dlg
if(dlg.exec() == QDialog::Accepted) // 利用Accepted返回值判断按钮是否被按下
{
w.show(); // 如果被按下,显示主窗口
return a.exec(); // 程序一直执行,直到主窗口关闭
}
else return 0; //如果没有被按下,则不会进入主窗口,整个程序结束运行
}
#include "logindlg.h"
#include "ui_logindlg.h"
LoginDlg::LoginDlg(QWidget *parent) :
QDialog(parent),
ui(new Ui::LoginDlg)
{
ui->setupUi(this);
}
LoginDlg::~LoginDlg()
{
delete ui;
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->pushButton->setText(tr("新窗口")); //将界面上按钮的显示文本更改为“新窗口”
}
MainWindow::~MainWindow()
{
delete ui;
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.