//logindlg.cpp
#include "logindlg.h" #include <QGridLayout>
#include <QHBoxLayout>
#include <QPalette> loginDlg::loginDlg(QWidget *parent) :
QDialog(parent)
{
/*默认没有点击登录*/
islogin=false; this->setWindowTitle(tr("登录")); label1=new QLabel(tr("用户ID:"));
edit1=new QLineEdit(); label2=new QLabel(tr("密码:"));
edit2=new QLineEdit();
/*将QLineEdit设置成密码框*/
edit2->setEchoMode(QLineEdit::Password); label3=new QLabel(tr("数据库名称:"));
edit3=new QLineEdit(); label4=new QLabel(tr("服务器IP:"));
edit4=new QLineEdit(); btn1=new QPushButton(tr("登录"));
connect(btn1,SIGNAL(clicked()),this,SLOT(btn1_click()));
btn2=new QPushButton(tr("取消"));
connect(btn2,SIGNAL(clicked()),this,SLOT(btn2_click())); QHBoxLayout *lay2=new QHBoxLayout();
lay2->addWidget(btn1);
lay2->addWidget(btn2); QGridLayout *lay1=new QGridLayout(this);
lay1->addWidget(label1,,);
lay1->addWidget(edit1,,);
lay1->addWidget(label2,,);
lay1->addWidget(edit2,,);
lay1->addWidget(label3,,);
lay1->addWidget(edit3,,);
lay1->addWidget(label4,,);
lay1->addWidget(edit4,,);
lay1->addLayout(lay2,,,,); /*设置第0列占位比为1*/
lay1->setColumnStretch(,);
/*设置第1列占位比为1*/
lay1->setColumnStretch(,);
/*设置边距*/
lay1->setMargin();
/*设置控件间的间距*/
lay1->setSpacing();
/*设置窗口大小不可以随意改变*/
lay1->setSizeConstraint(QLayout::SetFixedSize);
/*设置图片填充满对话框背景*/
this->setAutoFillBackground(true);
/*设置对话框背景图片*/
QPalette palette1;
palette1.setBrush(QPalette::Background,QBrush(QPixmap("12.jpg")));
this->setPalette(palette1);
} void loginDlg::btn1_click()
{
/*用户点击登录*/
islogin=true;
//获取用户输入信息
username=edit1->text();
userpass=edit2->text();
dbname=edit3->text();
ipaddr=edit4->text();
/*在登录方法只获取信息,在主函数中处理这些信息,这是为了安全*/
this->close();
/*不关闭对话框,Dialog的exec()方法会永远阻塞*/
} void loginDlg::btn2_click()
{
/*用户点击取消*/
islogin=false;
this->close();
}
//main.cpp
#include "mainwindow.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.resize(,);
w.show(); return a.exec();
}
//scriptdlg.cpp
#include "scriptdlg.h" #include <QHBoxLayout>
#include <QVBoxLayout> ScriptDlg::ScriptDlg(QWidget *parent) :
QDialog(parent)
{
isexec=false; this->setWindowTitle("执行SQL");
label1=new QLabel(tr("请输入SQL"));
tedit1=new QTextEdit();
btn1=new QPushButton(tr("执行"));
connect(btn1,SIGNAL(clicked()),this,SLOT(btn1_click()));
btn2=new QPushButton(tr("取消"));
connect(btn2,SIGNAL(clicked()),this,SLOT(btn2_click()));
QHBoxLayout *lay1=new QHBoxLayout();
lay1->addWidget(btn1);
lay1->addWidget(btn2);
QVBoxLayout *lay2=new QVBoxLayout();
lay2->addWidget(tedit1);
lay2->addLayout(lay1);
QHBoxLayout *lay3=new QHBoxLayout(this);
lay3->addWidget(label1);
lay3->addLayout(lay2); /*设置边距*/
lay3->setMargin();
/*设置间距*/
lay3->setSpacing();
} void ScriptDlg::btn1_click()
{
isexec=true;
//获取用户输入
this->strsql=tedit1->toPlainText();
this->close();
} void ScriptDlg::btn2_click()
{
this->close();
}

QT 数据库编程二的更多相关文章

  1. Qt——数据库编程

    一.概述 Qt提供了一个类似JDBC的数据库接口,需要为每个可以连接的特定数据库提供驱动程序,可以通过 QStringList QSqlDatabase::drivers() 知道当前版本的Qt哪些驱 ...

  2. Qt数据库编程1

    Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 qt中数据库编程的步骤: 1.加载数据库驱动 QSqlDatab ...

  3. QT 数据库编程三

    //mainwindow.cpp #include "mainwindow.h" #include "logindlg.h" #include "sc ...

  4. Qt数据库编程_基本

    QtSql模块提供了一个平台无关且数据库无关的访问SQL数据库的接口. Qt中的每个数据库连接用一个QSqlDatabase对象来表示:Qt使用不同driver来和各种不同数据库的API进行通讯. Q ...

  5. QT 数据库编程四

    //vmysql.cpp #include "vmysql.h" #include <QMessageBox> Vmysql::Vmysql() { mysql_ini ...

  6. QT 网络编程二(UDP版本)

    QT的UdpSocket接收消息使用原则 第一步:new一个UdpSocket 第二步:调用UdpSocket的bind方法,同时指定端口号 第三步:使用connect将接收消息函数和UdpSocke ...

  7. QT基于model/view数据库编程2

    Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 基于model/view数据库编程: qt提供model类: Q ...

  8. c++学习书籍推荐《C++ GUI Qt 4编程(第2版)》下载

    下载地址:点我 百度云及其他网盘下载地址:点我 编辑推荐 <C++ GUI Qt 4编程(第2版)>讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4.Qt4.5及后续版本的Q ...

  9. (九)文档和视图,Invalidate,数据库编程

    一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): ...

随机推荐

  1. Linux双机信任,适用统一安装

    一.生成建立安全信任关系的证书. 在A机root用户下执行ssh-keygen命令,在需要输入的地方,直接回车, # ssh-keygen -t rsa 注:直接回车就行 二.查看生成密钥的文件 # ...

  2. NuGet学习笔记1——初识NuGet及快速安装使用

    关于NuGet园子里已经有不少介绍及使用经验,本文仅作为自己研究学习NuGet一个记录. 初次认识NuGet是在去年把项目升级为MVC3的时候,当时看到工具菜单多一项Library Package M ...

  3. Mongodb Manual阅读笔记:CH5 安全性

    5 安全性 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读 ...

  4. 十五天精通WCF——第五天 你需要了解的三个小技巧

    一: 服务是端点的集合 当你在开发wcf的时候,你或许已经注意到了一个service可以公布多个endpoint,确实是这样,在wcf中有一句很经典的话,叫做“服务是端点的集合",就 比如说 ...

  5. 深入理解Nginx之调试优化技巧

    在开发过程中,我们经常会碰到段错误等异常,这时我们需要有相应的机制来进行调试,特别是服务提供在线上时,面对大量的日志信息,合理的调试处理机制对于开发来说是一件非常重要的事情,幸好Nginx本身提供了很 ...

  6. CentOS 7最小化安装后找不到‘ifconfig’命令——修复小提示

    如果你不知道在哪里可以找到ifconfig命令,请按照以下简单的步骤来找到它.首先,让我们找出哪个包提供了ifconfig命令.要完成这项任务,输入以下命令: [root@jrserver app_f ...

  7. C#邮件发送问题(二)

    C#邮件发送问题(一) 三.C#下创建基于TcpClient发送邮件组件 在上一节在Dos命令行下测试SMTP服务器连接时,已经使用了SMTP的部分命令,但是当时无法对信息进行编码和解码,也就无法继续 ...

  8. shell执行mysql命令

    难点主要在参数的传递方式吧,不过查资料后发现很简单. 1.使用-e参数传递命令,适用于简单语句      mysql -uuser -ppasswd -e "create database ...

  9. 树莓派搭建安装mysql

    最近刚入手了一枚树莓派,突发奇想打算做一个小型的家用服务器,在家7*24小时一直挂着. 真的是非常小,只有巴掌大,给树莓派买了一些配件,外壳.小风扇.2片散热片.32G SD卡.HDMI线,组装之后的 ...

  10. 学习OpenStack之(5):在Mac上部署Juno版本OpenStack 四节点环境

    0. 前沿 经过一段时间的折腾,终于在自己的Mac上装好了Juno版本的四节点环境.这过程中,花了大量的时间,碰到了许多问题,学到不少知识,折腾过不少其实不需要折腾的东西,本文试着来对这过程做个总结. ...