鱼C论坛

 找回密码
 立即注册
查看: 1540|回复: 1

[技术交流] 苍老师及其众位老师名片夹C++配合QT

[复制链接]
发表于 2015-1-29 22:22:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
QQ截图20150129221436.png
  1. #ifndef CONFIG_H
  2. #define CONFIG_H

  3. #include <QWidget>
  4. #include <QListWidget>         //列表框类
  5. #include <QListWidgetItem>       //列表框项目
  6. #include <QHBoxLayout>            //水平布局
  7. #include <QVBoxLayout>           //垂直布局
  8. #include <QPushButton>           //按钮
  9. #include <mypage.h>              //在主窗口中定义三个窗口
  10. #include <QStackedWidget>        //容器窗口,用来存储三个窗口

  11. class Config : public QWidget
  12. {
  13.     Q_OBJECT

  14. public:
  15.     Config(QWidget *parent = 0);
  16.     ~Config();
  17.     QListWidget *list ; //定义全局变量列表框类指针
  18.     MyPage1 *page1 ;
  19.     MyPage2 *page2 ;
  20.     MyPage3 *page3 ;
  21.     QStackedWidget *InfoWidget ;
  22. protected slots :
  23.     void pagechanged(int);
  24. };

  25. #endif // CONFIG_H
  26. #ifndef MYPAGE
  27. #define MYPAGE

  28. #include <QWidget>
  29. #include <QLabel>    //标签, 用来显示提示语
  30. #include <QLineEdit>  //用来显示信息
  31. #include <QGridLayout> // 网格布局

  32. class MyPage1 : public QWidget
  33. {
  34.     Q_OBJECT

  35. public:
  36.     MyPage1(QWidget *parent = 0);
  37.     ~MyPage1(){ }
  38.     QLabel *NameLabel ,*HeightLabel ,*WeightLabel ,*BWHLabel ;
  39.     QLineEdit *NameEdit ,*HeightEdit ,*WeightEdit ,*BWHEdit ;
  40. };

  41. class MyPage2 : public QWidget
  42. {
  43.     Q_OBJECT

  44. public:
  45.     MyPage2(QWidget *parent = 0);
  46.     ~MyPage2(){ }
  47. };

  48. class MyPage3 : public QWidget
  49. {
  50.     Q_OBJECT

  51. public:
  52.     MyPage3(QWidget *parent = 0);
  53.     ~MyPage3(){ }
  54. };

  55. #endif // MYPAGE

  56. #include "config.h"

  57. Config::Config(QWidget *parent)
  58.     : QWidget(parent)
  59. {
  60.     list = new QListWidget ;  //创建一个列表框
  61.     list->setIconSize(QSize(256,128));//设置图标尺寸
  62.     list->setSpacing(40);         //设置项目间隔
  63.     list->setViewMode(QListView::IconMode); //设置项目显示方式,从左到右
  64.     list->setMaximumWidth(128);         //设置列表框最大宽度,迫使项目换行
  65.     list->setMovement(QListView::Static); //设置项目为不可移动

  66.     this->resize(800,600);            //重新设置窗口大小
  67.     /*创建三个列表框项目,并设置好图片*/
  68.     QListWidgetItem *item1 = new QListWidgetItem ;
  69.     item1->setIcon(QIcon(":/1.png"));
  70.     item1->setText(tr("苍井空"));
  71.     QListWidgetItem *item2 = new QListWidgetItem ;
  72.     item2->setIcon(QIcon(":/2.png"));
  73.     item2->setText(tr("泷泽萝拉"));
  74.     QListWidgetItem *item3 = new QListWidgetItem ;
  75.     item3->setIcon(QIcon(":/3.png"));
  76.     item3->setText(tr("小甲鱼"));
  77.     /*将创建好的三个项目添加进列表框*/
  78.     list->addItem(item1);
  79.     list->addItem(item2);
  80.     list->addItem(item3);
  81.     /*添加按钮*/
  82.     QPushButton *btn = new QPushButton ;
  83.     connect(btn , SIGNAL(clicked()), this , SLOT(close()));
  84.     btn->setText(tr("关闭"));

  85.     page1 = new MyPage1 ;
  86.     page2 = new MyPage2 ;
  87.     page3 = new MyPage3 ;

  88.     InfoWidget = new QStackedWidget ;
  89.     InfoWidget->addWidget(page1) ;
  90.     InfoWidget->addWidget(page2) ;
  91.     InfoWidget->addWidget(page3) ;

  92.     connect(list ,SIGNAL(currentRowChanged(int)) ,this ,SLOT(pagechanged(int)) );
  93.     /*布局*/
  94.     QHBoxLayout *HLayout = new QHBoxLayout ;
  95.     HLayout->addWidget(list);
  96.     HLayout->addWidget(InfoWidget);

  97.     QGridLayout *mainLayout = new QGridLayout(this);
  98.     mainLayout->addLayout(HLayout,0,0,1,6);
  99.     mainLayout->addWidget(btn,1,5,1,1);
  100. }

  101. Config::~Config()
  102. {

  103. }

  104. void Config::pagechanged(int index)
  105. {
  106.     InfoWidget->setCurrentIndex(index);
  107. }
  108. #include "config.h"
  109. #include <QApplication>

  110. int main(int argc, char *argv[])
  111. {
  112.     QApplication a(argc, argv);
  113.     Config w;
  114.     w.show();

  115.     return a.exec();
  116. }
  117. #include "mypage.h"

  118. MyPage1::MyPage1(QWidget *parent)
  119.     : QWidget(parent)
  120. {
  121.     NameLabel = new QLabel(tr("姓名:"));
  122.     HeightLabel = new QLabel(tr("身高:"));
  123.     WeightLabel = new QLabel(tr("体重:"));
  124.     BWHLabel = new QLabel(tr("三围:"));

  125.     NameEdit = new QLineEdit(tr("苍井空"));
  126.     HeightEdit = new QLineEdit(tr("165cm"));
  127.     WeightEdit = new QLineEdit(tr("60kg"));
  128.     BWHEdit = new QLineEdit(tr("85,80,85"));

  129.     QGridLayout *GLayout = new QGridLayout(this);

  130.     GLayout->addWidget(NameLabel,0,0,1,2);
  131.     GLayout->addWidget(NameEdit,0,2,1,2);

  132.     GLayout->addWidget(HeightLabel,1,0,1,2);
  133.     GLayout->addWidget(HeightEdit,1,2,1,2);

  134.     GLayout->addWidget(WeightLabel,2,0,1,2);
  135.     GLayout->addWidget(WeightEdit,2,2,1,2);

  136.     this->setLayout(GLayout);

  137. }

  138. MyPage2::MyPage2(QWidget *parent)
  139.     : QWidget(parent)
  140. {

  141. }

  142. MyPage3::MyPage3(QWidget *parent)
  143.     : QWidget(parent)
  144. {

  145. }
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-2-11 20:42:02 | 显示全部楼层
给跪了:shock::shock:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 17:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表