当前位置:嗨网首页>书籍在线阅读

32-界面设计与初始化

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.8.2 界面设计与初始化

Samp4_9的主窗体从QMainWindow继承而来。在图4-18所示的窗口上,一个QTableWidget组件和一个QPlainTextEdit组件组成上下分割布局splitter。左侧的按钮都放在一个QGroupBox组件里,采用Grid布局,然后将groupBox与splitter采用左右分割布局。这是一个典型的三区分割的布局。

在主窗口类MainWindow里自定义了一些变量和函数,用于后面的代码实现,下面是在MainWindow的private部分自定义的变量和函数:

private:
//  自定义单元格Type的类型,在创建单元格的 item时使用
  enum   CellType{ctName=1000,ctSex,ctBirth,ctNation,ctPartyM,ctScore}; 
//  各字段在表格中的列号
  enum  FieldColNum{colName=0,colSex,colBirth,
                   colNation,colScore,colPartyM};
  QLabel  *labCellIndex; //状态栏上用于显示单元格的行号、列号
  QLabel  *labCellType;//状态栏上用于显示单元格的type
  QLabel  *labStudID; //状态栏上用于显示学号
  void   createItemsARow(int rowNo,QString Name,QString Sex,QDate birth,
            QString Nation,bool isPM,int score); //为某一行创建items

枚举类型CellType是用来表示单元格类型的,在创建单元格时使用。

枚举类型FieldColNum用枚举常量表示各字段在表格中的列号。

在MainWindow的构造函数里对界面进行初始化,代码如下:

 MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);
   setCentralWidget(ui->splitterMain);
//状态栏初始化创建
   labCellIndex = new QLabel("当前单元格坐标:",this);
   labCellIndex->setMinimumWidth(250);
   labCellType=new QLabel("当前单元格类型:",this);
   labCellType->setMinimumWidth(200);
   labStudID=new QLabel("学生ID:",this);
   labStudID->setMinimumWidth(200);
   ui->statusBar->addWidget(labCellIndex);//加到状态栏
   ui->statusBar->addWidget(labCellType);
   ui->statusBar->addWidget(labStudID);
}