链接sqlite3
LIBS += -L C:\Users\NAJSWORD\Desktop\915_ui\915-ui -lsqlite3
chinese
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
picture
image.qrc:
<RCC>
<qresource>
<file>images/new.png</file>
</qresource>
</RCC>
pro:RESOURCES =image.qrc
标题图片
title.rc: IDI_ICON1 ICON DISCARDABLE "title.ico"
pro:RC_FILE= title.rc
控制输入
QValidator * validator; //检验器,只允许输入数字
QRegExp regx("[0-9]+$"); //工号设置输入范围0~9
QRegExp regx2("[0-9a-zA-Z]+$"); //密码设置输入范围0~9或字母
validator = new QRegExpValidator(regx,nameline);
nameline->setValidator(validator );
gui
//窗口
this->setWindowTitle("计算器"); //标题
this->setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
this->resize(400,300);
this->setFixedSize(250,210);
this->setWindowOpacity(0.7);//设置透明1-全体透明
font
->setFont(QFont("Times New Roman", 7))
->setAlignment(Qt::AlignRight)
部件样式
->setStyleSheet("QPushButton/QMainWindow/QLabel/QLineEdit{ }")
(font)
font: bold italic large \"Times New Roman\";
font-size:25px;
color:rgb(55,100,255);
(背景)
color:red;
background:yellow
icon-size:20px 5px;
background-image:url(images/1.jpg);
background-position:top;
(背景边框)
border:4px solid rgb(155,200,33);
border-radius:8px; //圆弧角
border-image:write url(images/1.jpg); (image??)
绝对路径(this重要性)
->setGeometry(30,30,100,50)
QLayout(嵌套) QHBoxLayout QVBoxLayout QGridLayout
1. 中心布局 QWidget
void MainWindow::createcentral()
{
QWidget *w = new QWidget(this);
setCentralWidget(w);
}
2. 框体
QLineEdit *line = new QLineEdit;
createhorizontalgroupbox();
QLabel *name=new QLabel("name");
3. QGridLayout
void MainWindow::creategridlayout()
{
grid=new QGridLayout; //布局标志grid
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
buttons[j]=new QPushButton(tr("%1").arg(i*3+j+1)); //代替%1
grid->addWidget(buttons[j],i,j,1,1);
}
}
setLayout(grid); //布局标志grid
}
4. QVBoxLayout
QVBoxLayout *vbox= new QVBoxLayout;
vbox->addWidget(line);
vbox->addLayout(grid); //加入网格布局
setLayout(vbox);
5. QHBoxLayout
QHBoxLayout *hbox=new QHBoxLayout;
hbox->addWidget(name);
hbox->addLayout(vbox); //加入垂直布局
w->setLayout(hbox); //布局结束
QString
QString text=line->text()=button->text()&& text.=line text().
修改
.contains(" ")
.isEmpty() //为空
.prepend(tr("-")) //前追加
.apend() //后追加 ??
.reverse() //反转 ??
.remove(0,1) //移除最前符号
.chop(1) //移除最后字符
.clear() //清空
qstr=line->text()+QString::number(value) //连接QString
类型转换
.toint() //转换为整形
.todouble()
QString::number(i) //转换为QString
qstr=tr("%1.").arg(0) //传参
.toStdString().c_str() //转换为String %s输出 或者 qdebug()<<qstr
&& 获取文本内容并转换
QString text=line->text()
double value=text.toDouble()
line->setText(text) //修改
QFrame QLabel
->setFrameStyle(QFrame:Panel|QFrame:Sunken) //框架凸起 和阴影风格
Q****Edit
QLineEdit *line = new QLineEdit(this) //qwidget下无this无法显示
->setMaxLength(9)
->setReadOnly(true)
->clear() //QString操作
->setAlignment(Qt::AlignRight)
->setText()
qstr=line->text() //获取文本
->setText()
->setSelection(0,5)
qstr=line->selectedText() //获取选择文本
QTextEdit
->setPlainText("")
qstr=text->toPlainText() //获取
&&
->setText(QString::number(memory))
->setText(line->text()+QString::number(value))
->setText(tr("%1.").arg(0))
tr("str%1").arg(i)
->setText(text);QString text
QPlainTextEdit
QPushButton
QPushButton *p=new QPushButton("button",this)
->setEnabled(false)
->setText("button")
QComboBox
->addItem (0,"30")
->insertitem(0,"images/1.jpg","30") //添加选项
QSpinbox
->setRange(1,10)
QTableWidget 表格
table1=new QTableWidget(5,6,this);//设置行列
->resize(600,200);
->setEditTriggers(QAbstractItemView::NoEditTriggers) //不可编辑
表头
QStringList header<<"主叫号码";
->setHorizontalHeaderLabels(header);
填充选项
->setItem(0,0,new QTableWidgetItem("张强"))
->setItem(0,0,new QTableWidgetItem(QIcon("images/1.jpg"),""))
->setCellWidget(0,3,combobox)
->rowCount()
->insertRow(num)
->removeRow(num-1)
,table_deta_suce->item(i,j)->text().toStdString().c_str() //获取文本值
QAction
newact=new QAction(QIcon(":/images/new.png"),"新建",this)
->setShortcuts(QKeySequence::New) //快捷键
->setStatusTip("新建一个文本") //同步状态栏
QMenu
filemenu=this->menuBar()->addMenu("文件") //主菜单
->addAction(newact) //子菜单
->addSeparator()
QToolbar
filetoolbar=addToolBar("文件") //工具条
->addAction(newact) //工具栏名
QStatusBar
statusBar()->showMessage("准备") //显示值
消息框 QDialog
QMessageBox::warning(NULL,"warning","sure?",QMessageBox::Ok,QMessageBox::Abort);
QMessageBox::critica(NULL,"warning","sure?",QMessageBox::Ok,QMessageBox::Abort);
QMessageBox::information(this,"打印凭条","成功", QMessageBox::Ok);
进度条 QProgressDialog
void Widget::printping()
{
QProgressDialog progressDlg("正在打印凭条", tr("取消"), 0, 100000, this);
progressDlg.setWindowTitle(tr("购买电子卡"));
progressDlg.setWindowModality(Qt::WindowModal);
progressDlg.show();
for(int i = 0; i < 100000; i++)
{
progressDlg.setValue(i);
qApp->processEvents();
if(progressDlg.wasCanceled())
{
break;
}
}
}
&& 槽
QPushButton *click=qobject_cast<QPushButton *>(sender())
&& 按钮使能
bt1->setEnabled(false);
connect(bt2,SIGNAL(clicked()),this,SLOT(btn()));
void as::btn()
{
bt1->setEnabled(true);
}
信号
SIGNAL(textChanged(QString))
valueChanged(int)
事件
paintEvent重绘事件
void Widget::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.drawPixmap(0,0,this->width(),this->height(),QPixmap("1.jpg"));
}
resizeEvent
void Widget::resizeEvent(QResizeEvent *)
{
butok->setGeometry(this->width()/4,this->height()/4,this->width()/4,this->height()/4);
}
mouseMoveEvent 鼠标跟随事件 mouseReleaseEvent mouseDoubleClickEvent
void Widget::mouseMoveEvent(QMouseEvent *event)
{
QPoint p;
p=event->pos();
butok->setGeometry(p.x(),p.y(),butok->width(),butok->height());
}
keyPressEvent 控制输入
void Widget::keyPressEvent(QKeyEvent *event)
{
if(event->key()==Qt::Key_Enter-1)
qDebug("%d",event->key());
}
QGroupBox QDialogButtonBox
sure=new QPushButton("确定"); //无this
QString(QLatin1String(messa)) //避免malloc
Qt::Key_Escape ESC键
Qt::Key_Tab Tab键
Qt::Key_Backspace 回退键
Qt::Key_Enter 回车键
Qt::Key_Down 向下键
Qt::Key_Space 空格键
Qt::Key_F1 F1键
Qt::Key_Right 向右键
LIBS += -L C:\Users\NAJSWORD\Desktop\915_ui\915-ui -lsqlite3
chinese
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
picture
image.qrc:
<RCC>
<qresource>
<file>images/new.png</file>
</qresource>
</RCC>
pro:RESOURCES =image.qrc
标题图片
title.rc: IDI_ICON1 ICON DISCARDABLE "title.ico"
pro:RC_FILE= title.rc
控制输入
QValidator * validator; //检验器,只允许输入数字
QRegExp regx("[0-9]+$"); //工号设置输入范围0~9
QRegExp regx2("[0-9a-zA-Z]+$"); //密码设置输入范围0~9或字母
validator = new QRegExpValidator(regx,nameline);
nameline->setValidator(validator );
gui
//窗口
this->setWindowTitle("计算器"); //标题
this->setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏
this->resize(400,300);
this->setFixedSize(250,210);
this->setWindowOpacity(0.7);//设置透明1-全体透明
font
->setFont(QFont("Times New Roman", 7))
->setAlignment(Qt::AlignRight)
部件样式
->setStyleSheet("QPushButton/QMainWindow/QLabel/QLineEdit{ }")
(font)
font: bold italic large \"Times New Roman\";
font-size:25px;
color:rgb(55,100,255);
(背景)
color:red;
background:yellow
icon-size:20px 5px;
background-image:url(images/1.jpg);
background-position:top;
(背景边框)
border:4px solid rgb(155,200,33);
border-radius:8px; //圆弧角
border-image:write url(images/1.jpg); (image??)
绝对路径(this重要性)
->setGeometry(30,30,100,50)
QLayout(嵌套) QHBoxLayout QVBoxLayout QGridLayout
1. 中心布局 QWidget
void MainWindow::createcentral()
{
QWidget *w = new QWidget(this);
setCentralWidget(w);
}
2. 框体
QLineEdit *line = new QLineEdit;
createhorizontalgroupbox();
QLabel *name=new QLabel("name");
3. QGridLayout
void MainWindow::creategridlayout()
{
grid=new QGridLayout; //布局标志grid
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
buttons[j]=new QPushButton(tr("%1").arg(i*3+j+1)); //代替%1
grid->addWidget(buttons[j],i,j,1,1);
}
}
setLayout(grid); //布局标志grid
}
4. QVBoxLayout
QVBoxLayout *vbox= new QVBoxLayout;
vbox->addWidget(line);
vbox->addLayout(grid); //加入网格布局
setLayout(vbox);
5. QHBoxLayout
QHBoxLayout *hbox=new QHBoxLayout;
hbox->addWidget(name);
hbox->addLayout(vbox); //加入垂直布局
w->setLayout(hbox); //布局结束
QString
QString text=line->text()=button->text()&& text.=line text().
修改
.contains(" ")
.isEmpty() //为空
.prepend(tr("-")) //前追加
.apend() //后追加 ??
.reverse() //反转 ??
.remove(0,1) //移除最前符号
.chop(1) //移除最后字符
.clear() //清空
qstr=line->text()+QString::number(value) //连接QString
类型转换
.toint() //转换为整形
.todouble()
QString::number(i) //转换为QString
qstr=tr("%1.").arg(0) //传参
.toStdString().c_str() //转换为String %s输出 或者 qdebug()<<qstr
&& 获取文本内容并转换
QString text=line->text()
double value=text.toDouble()
line->setText(text) //修改
QFrame QLabel
->setFrameStyle(QFrame:Panel|QFrame:Sunken) //框架凸起 和阴影风格
Q****Edit
QLineEdit *line = new QLineEdit(this) //qwidget下无this无法显示
->setMaxLength(9)
->setReadOnly(true)
->clear() //QString操作
->setAlignment(Qt::AlignRight)
->setText()
qstr=line->text() //获取文本
->setText()
->setSelection(0,5)
qstr=line->selectedText() //获取选择文本
QTextEdit
->setPlainText("")
qstr=text->toPlainText() //获取
&&
->setText(QString::number(memory))
->setText(line->text()+QString::number(value))
->setText(tr("%1.").arg(0))
tr("str%1").arg(i)
->setText(text);QString text
QPlainTextEdit
QPushButton
QPushButton *p=new QPushButton("button",this)
->setEnabled(false)
->setText("button")
QComboBox
->addItem (0,"30")
->insertitem(0,"images/1.jpg","30") //添加选项
QSpinbox
->setRange(1,10)
QTableWidget 表格
table1=new QTableWidget(5,6,this);//设置行列
->resize(600,200);
->setEditTriggers(QAbstractItemView::NoEditTriggers) //不可编辑
表头
QStringList header<<"主叫号码";
->setHorizontalHeaderLabels(header);
填充选项
->setItem(0,0,new QTableWidgetItem("张强"))
->setItem(0,0,new QTableWidgetItem(QIcon("images/1.jpg"),""))
->setCellWidget(0,3,combobox)
->rowCount()
->insertRow(num)
->removeRow(num-1)
,table_deta_suce->item(i,j)->text().toStdString().c_str() //获取文本值
QAction
newact=new QAction(QIcon(":/images/new.png"),"新建",this)
->setShortcuts(QKeySequence::New) //快捷键
->setStatusTip("新建一个文本") //同步状态栏
QMenu
filemenu=this->menuBar()->addMenu("文件") //主菜单
->addAction(newact) //子菜单
->addSeparator()
QToolbar
filetoolbar=addToolBar("文件") //工具条
->addAction(newact) //工具栏名
QStatusBar
statusBar()->showMessage("准备") //显示值
消息框 QDialog
QMessageBox::warning(NULL,"warning","sure?",QMessageBox::Ok,QMessageBox::Abort);
QMessageBox::critica(NULL,"warning","sure?",QMessageBox::Ok,QMessageBox::Abort);
QMessageBox::information(this,"打印凭条","成功", QMessageBox::Ok);
进度条 QProgressDialog
void Widget::printping()
{
QProgressDialog progressDlg("正在打印凭条", tr("取消"), 0, 100000, this);
progressDlg.setWindowTitle(tr("购买电子卡"));
progressDlg.setWindowModality(Qt::WindowModal);
progressDlg.show();
for(int i = 0; i < 100000; i++)
{
progressDlg.setValue(i);
qApp->processEvents();
if(progressDlg.wasCanceled())
{
break;
}
}
}
&& 槽
QPushButton *click=qobject_cast<QPushButton *>(sender())
&& 按钮使能
bt1->setEnabled(false);
connect(bt2,SIGNAL(clicked()),this,SLOT(btn()));
void as::btn()
{
bt1->setEnabled(true);
}
信号
SIGNAL(textChanged(QString))
valueChanged(int)
事件
paintEvent重绘事件
void Widget::paintEvent(QPaintEvent *)
{
QPainter p(this);
p.drawPixmap(0,0,this->width(),this->height(),QPixmap("1.jpg"));
}
resizeEvent
void Widget::resizeEvent(QResizeEvent *)
{
butok->setGeometry(this->width()/4,this->height()/4,this->width()/4,this->height()/4);
}
mouseMoveEvent 鼠标跟随事件 mouseReleaseEvent mouseDoubleClickEvent
void Widget::mouseMoveEvent(QMouseEvent *event)
{
QPoint p;
p=event->pos();
butok->setGeometry(p.x(),p.y(),butok->width(),butok->height());
}
keyPressEvent 控制输入
void Widget::keyPressEvent(QKeyEvent *event)
{
if(event->key()==Qt::Key_Enter-1)
qDebug("%d",event->key());
}
QGroupBox QDialogButtonBox
sure=new QPushButton("确定"); //无this
QString(QLatin1String(messa)) //避免malloc
Qt::Key_Escape ESC键
Qt::Key_Tab Tab键
Qt::Key_Backspace 回退键
Qt::Key_Enter 回车键
Qt::Key_Down 向下键
Qt::Key_Space 空格键
Qt::Key_F1 F1键
Qt::Key_Right 向右键