Qt学习笔记7——P23-25. 登录窗口布局,控件-按钮、QListWidget

发布时间 2023-03-30 19:15:40作者: 我会变强的
  • P23. 登录窗口布局
  • P24. 控件-按钮组
  • P25. QListWidget控件
  • (P23. 登录窗口布局)(创建了新项目)
  • 选取 widget 进行布局,水平布局、垂直布局、栅格布局
  • 自适应大小:点最上层的对象,然后垂直布局
  • 弹簧  Spacers -> Horizontal Spacer,默认是可伸缩的,如果想让弹簧固定长,可以在右下角属性 sizeType 选 Fixed,size Hint 调整具体值
  • 打破布局(意思是把之前已布局的取消掉):选中想打破布局的最大框,右键->布局->打破布局,或者直接选中框后在工具栏有个“打破布局”按钮
  • 栅格布局:Containers -> Widget 可以进行栅格布局(按几行几列来布局)
  • 自适应调整框的大小(一般是缩小框到合适的尺寸):选中 widget 框,右下角 sizePolicy垂直策略Fixed
  • .ui 修改运行窗口的标题:点击一次右上角最大的对象 -> 右下角属性,找windowTitle,修改值
  • .ui 限定运行窗口的大小:点击一次右上角最大的对象 -> 右下角属性,找 geometry,修改到合适的宽度和高度,然后下面的 minimumSize 和 maximumSize 的宽度和高度也修改成刚才的数值
  • 在输入密码时呈现***的样式:选中密码后面的框(lineEdit)-> 属性 -> echoMode 的值修改为 Password
  • 默认窗口和控件之间有 9 间隙(我的Qt默认11),可以调整:在右上角选中窗口 -> 右下角属性 - > Layout -> layout...Margin,调整值的大小

  有间隙的示例:

  

  • 这节课用到的控件:   

  Display Widgets -> Label  (写用户、密码)
  Input Widgets -> Line Edit  (用户和密码后面的条框)
  Buttons -> Push Button  (按钮)

  (没用到)Layouts -> Horizontal Layout  (使控件水平对齐(拉进去的是控件))

  Containers -> Widget ->把控件拖进来,选中右上角的widget -> 选上方(工具栏中)的水平布局  (调整用户、密码、框等的布局用到)
  Spacers -> Horizontal Spacer  (水平的弹簧)

 

  • (P24. 控件-按钮组)(创建了新项目)
  • Buttons:
  • Push Button:如何在 .ui 中对Push Button 添加资源图片:首先把资源文件添加到此项目中(Qt笔记6 P19.资源文件添加) -> 选中想要添加图片的按钮,右下角属性 icon,下拉值,选“选择资源”,然后就可以添加资源图片了
  • Tool Button:(用Tool Button实现左边图片、右边用户名的效果):首先对一个Tool Button 添加资源图片,并修改合适的大小(iconSize)-> 修改此 Button 的属性“text”的值(此时界面中的Button还并不会出现文字)-> 属性“toolButtonStyle”的值修改为“ToolButtonTextBesideIcon”,另外还可以勾选“autoRaise”(效果是光标不在Button上则不显示边框,在Button上则显示边框)
  • Radio Button:单选钮;

    给单选钮分组:添加若干Radio Button后,在左侧“Containers”中添加“Group Box”,然后把同一分组的Radio Button拖进来

    设置默认单选钮选项

1     //设置单选按钮,男默认选中
2     ui->rBnMan->setChecked(true);
3     //设置选中女后,打印提示
4     connect(ui->rbnWoman,&QRadioButton::clicked,[=](){
5         qDebug()<<QString::fromLocal8Bit("选中女");
6     });

 

  •  Check Box:多选钮;可以用“Group Box”分组
1     //多选按钮 2是选中 0是未选中 1是半选中(需要在按钮的属性设置)
2     connect(ui->checkBox_1,&QCheckBox::stateChanged,[=](int state){  //信号的参数要大于等于槽函数的参数,并且类型要一致,信号参数自动能传递给槽函数
3         qDebug()<<state;
4     });

.ui 中选中一个多选按钮后,可以把属性-> QCheckBox 下 tristate 属性勾上,这是此多选按钮将会有3种状态

 

  • P25. QListWidget控件(沿用上P项目)
  • (ui界面中)Item Widgets(Item-Based)-> List Widget
1    //widget.cpp
2     //利用listWidget写诗
3     QListWidgetItem * item = new QListWidgetItem("锄禾日当午");
4     //将一行诗放入到listWidget控件中
5     ui->listWidget->addItem(item);  //这行的"listWidget"是在ui添加的"List Widget"控件的变量名
6     //把item中的文字水平居中
7     item->setTextAlignment(Qt::AlignHCenter);

运行结果:

  

换一种方式:

1     QStringList list;
2     list<<"锄禾日当午"<<"汗滴禾下土"<<"谁知盘中餐"<<"粒粒皆辛苦";
3     ui->listWidget->addItems(list);  //"listWidget"是在ui添加的"List Widget"控件的变量名;addItems里添加的需要是QStringList;但是这种方式不能将所有文字居中

运行结果:

  

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)