1. //logindlg.cpp
  2. #include "logindlg.h"
  3.  
  4. #include <QGridLayout>
  5. #include <QHBoxLayout>
  6. #include <QPalette>
  7.  
  8. loginDlg::loginDlg(QWidget *parent) :
  9. QDialog(parent)
  10. {
  11. /*默认没有点击登录*/
  12. islogin=false;
  13.  
  14. this->setWindowTitle(tr("登录"));
  15.  
  16. label1=new QLabel(tr("用户ID:"));
  17. edit1=new QLineEdit();
  18.  
  19. label2=new QLabel(tr("密码:"));
  20. edit2=new QLineEdit();
  21. /*将QLineEdit设置成密码框*/
  22. edit2->setEchoMode(QLineEdit::Password);
  23.  
  24. label3=new QLabel(tr("数据库名称:"));
  25. edit3=new QLineEdit();
  26.  
  27. label4=new QLabel(tr("服务器IP:"));
  28. edit4=new QLineEdit();
  29.  
  30. btn1=new QPushButton(tr("登录"));
  31. connect(btn1,SIGNAL(clicked()),this,SLOT(btn1_click()));
  32. btn2=new QPushButton(tr("取消"));
  33. connect(btn2,SIGNAL(clicked()),this,SLOT(btn2_click()));
  34.  
  35. QHBoxLayout *lay2=new QHBoxLayout();
  36. lay2->addWidget(btn1);
  37. lay2->addWidget(btn2);
  38.  
  39. QGridLayout *lay1=new QGridLayout(this);
  40. lay1->addWidget(label1,,);
  41. lay1->addWidget(edit1,,);
  42. lay1->addWidget(label2,,);
  43. lay1->addWidget(edit2,,);
  44. lay1->addWidget(label3,,);
  45. lay1->addWidget(edit3,,);
  46. lay1->addWidget(label4,,);
  47. lay1->addWidget(edit4,,);
  48. lay1->addLayout(lay2,,,,);
  49.  
  50. /*设置第0列占位比为1*/
  51. lay1->setColumnStretch(,);
  52. /*设置第1列占位比为1*/
  53. lay1->setColumnStretch(,);
  54. /*设置边距*/
  55. lay1->setMargin();
  56. /*设置控件间的间距*/
  57. lay1->setSpacing();
  58. /*设置窗口大小不可以随意改变*/
  59. lay1->setSizeConstraint(QLayout::SetFixedSize);
  60. /*设置图片填充满对话框背景*/
  61. this->setAutoFillBackground(true);
  62. /*设置对话框背景图片*/
  63. QPalette palette1;
  64. palette1.setBrush(QPalette::Background,QBrush(QPixmap("12.jpg")));
  65. this->setPalette(palette1);
  66. }
  67.  
  68. void loginDlg::btn1_click()
  69. {
  70. /*用户点击登录*/
  71. islogin=true;
  72. //获取用户输入信息
  73. username=edit1->text();
  74. userpass=edit2->text();
  75. dbname=edit3->text();
  76. ipaddr=edit4->text();
  77. /*在登录方法只获取信息,在主函数中处理这些信息,这是为了安全*/
  78. this->close();
  79. /*不关闭对话框,Dialog的exec()方法会永远阻塞*/
  80. }
  81.  
  82. void loginDlg::btn2_click()
  83. {
  84. /*用户点击取消*/
  85. islogin=false;
  86. this->close();
  87. }
  1. //main.cpp
  2. #include "mainwindow.h"
  3. #include <QApplication>
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7. QApplication a(argc, argv);
  8. MainWindow w;
  9. w.resize(,);
  10. w.show();
  11.  
  12. return a.exec();
  13. }
  1. //scriptdlg.cpp
  2. #include "scriptdlg.h"
  3.  
  4. #include <QHBoxLayout>
  5. #include <QVBoxLayout>
  6.  
  7. ScriptDlg::ScriptDlg(QWidget *parent) :
  8. QDialog(parent)
  9. {
  10. isexec=false;
  11.  
  12. this->setWindowTitle("执行SQL");
  13. label1=new QLabel(tr("请输入SQL"));
  14. tedit1=new QTextEdit();
  15. btn1=new QPushButton(tr("执行"));
  16. connect(btn1,SIGNAL(clicked()),this,SLOT(btn1_click()));
  17. btn2=new QPushButton(tr("取消"));
  18. connect(btn2,SIGNAL(clicked()),this,SLOT(btn2_click()));
  19. QHBoxLayout *lay1=new QHBoxLayout();
  20. lay1->addWidget(btn1);
  21. lay1->addWidget(btn2);
  22. QVBoxLayout *lay2=new QVBoxLayout();
  23. lay2->addWidget(tedit1);
  24. lay2->addLayout(lay1);
  25. QHBoxLayout *lay3=new QHBoxLayout(this);
  26. lay3->addWidget(label1);
  27. lay3->addLayout(lay2);
  28.  
  29. /*设置边距*/
  30. lay3->setMargin();
  31. /*设置间距*/
  32. lay3->setSpacing();
  33. }
  34.  
  35. void ScriptDlg::btn1_click()
  36. {
  37. isexec=true;
  38. //获取用户输入
  39. this->strsql=tedit1->toPlainText();
  40. this->close();
  41. }
  42.  
  43. void ScriptDlg::btn2_click()
  44. {
  45. this->close();
  46. }

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. 接口测试中三种传参请求(Map、request、Integer)解析

    注册企业接口传入的是一个request,查询企业接口传入的是一个integer:根据名称和国家名称模糊匹配接口传入的是一个Map:针对三种不同的传参我怎么作接口测试呢? 1 package com.w ...

  2. flashdevelop生成swc库

    flashdevelop没有直接支持生成swc的工程,但flashdevelop生成swc也比较方便,不用任何插件. swc库是由 flexsdk的compc.exe生成的,其实我们通过这个命令行也可 ...

  3. 自定义可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers)vs.net开发工具

    背景: 话说:使用CYQ.Data时,会经常断点MDataTable的对象,为了查看表格的数据内容,在监视里会常ToDataTable(),然后借可DataTable的可视化方式查看表格. 近日:心中 ...

  4. IT软件开发常用英语词汇

    Aabstract 抽象的abstract base class (ABC)抽象基类abstract class 抽象类abstraction 抽象.抽象物.抽象性access 存取.访问access ...

  5. EventBus使用详解(一)

    一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...

  6. 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 ...

  7. Remote Desktop File Format

    转自:http://engrmosaic.uncc.edu/mosaic-anywhere/remote-desktop-file-format The new Terminal Services c ...

  8. 【转】MySQL 高可用架构在业务层面的分析研究

    原文地址 http://database.51cto.com/art/201507/483463_all.htm 前言: 相对于传统行业的相对服务时间9x9x6或者9x12x5,因为互联网电子商务以及 ...

  9. Linux磁盘管理之创建磁盘分区05

    一.磁盘基础知识 磁盘安装在计算机上后,在系统读取到硬盘后并不能直接使用,必须经过分区.格式化才能够正确使用.这一次主要是针对磁盘分区进行简单总结,存储设备类型:U盘.光盘.软盘.硬盘.磁带. 硬盘接 ...

  10. 如何让django方法自动地定期执行

    实现思路:1.首先把需要自动执行的django method写成django command2.将自己定义的django command添加到cron中使用cron服务实现定期执行 Part1 在dj ...