QT 数据库编程二
- //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 数据库编程二的更多相关文章
- Qt——数据库编程
一.概述 Qt提供了一个类似JDBC的数据库接口,需要为每个可以连接的特定数据库提供驱动程序,可以通过 QStringList QSqlDatabase::drivers() 知道当前版本的Qt哪些驱 ...
- Qt数据库编程1
Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 qt中数据库编程的步骤: 1.加载数据库驱动 QSqlDatab ...
- QT 数据库编程三
//mainwindow.cpp #include "mainwindow.h" #include "logindlg.h" #include "sc ...
- Qt数据库编程_基本
QtSql模块提供了一个平台无关且数据库无关的访问SQL数据库的接口. Qt中的每个数据库连接用一个QSqlDatabase对象来表示:Qt使用不同driver来和各种不同数据库的API进行通讯. Q ...
- QT 数据库编程四
//vmysql.cpp #include "vmysql.h" #include <QMessageBox> Vmysql::Vmysql() { mysql_ini ...
- QT 网络编程二(UDP版本)
QT的UdpSocket接收消息使用原则 第一步:new一个UdpSocket 第二步:调用UdpSocket的bind方法,同时指定端口号 第三步:使用connect将接收消息函数和UdpSocke ...
- QT基于model/view数据库编程2
Qt中数据编程主要分为以下两点:1.利用qt提供类 访问数据库或者成为简单的数据库编程2.数据库编程中引入model/view编程模型 基于model/view数据库编程: qt提供model类: Q ...
- c++学习书籍推荐《C++ GUI Qt 4编程(第2版)》下载
下载地址:点我 百度云及其他网盘下载地址:点我 编辑推荐 <C++ GUI Qt 4编程(第2版)>讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4.Qt4.5及后续版本的Q ...
- (九)文档和视图,Invalidate,数据库编程
一.文档视图结构 文档类(CDocument):存储加载(读写)数据视图类(CView):显示和修改数据 1)单文档 a)文档模板:把框架窗口.文档.视图关联在一起b)文档类(CDocument): ...
随机推荐
- 接口测试中三种传参请求(Map、request、Integer)解析
注册企业接口传入的是一个request,查询企业接口传入的是一个integer:根据名称和国家名称模糊匹配接口传入的是一个Map:针对三种不同的传参我怎么作接口测试呢? 1 package com.w ...
- flashdevelop生成swc库
flashdevelop没有直接支持生成swc的工程,但flashdevelop生成swc也比较方便,不用任何插件. swc库是由 flexsdk的compc.exe生成的,其实我们通过这个命令行也可 ...
- 自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)vs.net开发工具
背景: 话说:使用CYQ.Data时,会经常断点MDataTable的对象,为了查看表格的数据内容,在监视里会常ToDataTable(),然后借可DataTable的可视化方式查看表格. 近日:心中 ...
- IT软件开发常用英语词汇
Aabstract 抽象的abstract base class (ABC)抽象基类abstract class 抽象类abstraction 抽象.抽象物.抽象性access 存取.访问access ...
- EventBus使用详解(一)
一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...
- Linux Buffer I/O error on device dm-4, logical block
Linux服务器日志(Oracle Linux Server release 5.7)里面出现了一些"Buffer I/O error on device dm-4, logical blo ...
- Remote Desktop File Format
转自:http://engrmosaic.uncc.edu/mosaic-anywhere/remote-desktop-file-format The new Terminal Services c ...
- 【转】MySQL 高可用架构在业务层面的分析研究
原文地址 http://database.51cto.com/art/201507/483463_all.htm 前言: 相对于传统行业的相对服务时间9x9x6或者9x12x5,因为互联网电子商务以及 ...
- Linux磁盘管理之创建磁盘分区05
一.磁盘基础知识 磁盘安装在计算机上后,在系统读取到硬盘后并不能直接使用,必须经过分区.格式化才能够正确使用.这一次主要是针对磁盘分区进行简单总结,存储设备类型:U盘.光盘.软盘.硬盘.磁带. 硬盘接 ...
- 如何让django方法自动地定期执行
实现思路:1.首先把需要自动执行的django method写成django command2.将自己定义的django command添加到cron中使用cron服务实现定期执行 Part1 在dj ...