Qt在mainwindow下代码添加控件不能显示的问题

以前在dialog或者widget下代码添加控件能显示,但是今天发现在mainwindow下居然不能显示,后来查了资料才知道,需要先定义一个widget,具体代码如下:

    QWidget *center = new QWidget(this);
    setCentralWidget(center);
    penColorComboBox = new QComboBox;
    createColorComboBox(penColorComboBox);
    penColorLabel = new QLabel(tr("pen color"));
    penColorLabel->setBuddy(penColorComboBox);

    penWidthspinbox = new QSpinBox;
    penWidthspinbox->setRange(0,20);
    penWidthspinbox->setSpecialValueText(tr("0 (cosmetic pen)"));

    penWidthLabel = new QLabel(tr("pen &width"));
    penWidthLabel->setBuddy(penWidthspinbox);

    createStyleComboBox();

    penStyleLabel = new QLabel(tr("&pen style"));
    penStyleLabel->setBuddy(penStyleComboBox);

    brushColorComboBox = new QComboBox();
    createColorComboBox(brushColorComboBox);

    brushColorLabel = new QLabel(tr("Brush Color"));
    brushColorLabel->setBuddy(brushColorComboBox);

    brushStyleComboBox = new QComboBox;
    brushStyleComboBox->addItem(tr("None"),Qt::NoBrush);


    brushStyleLabel = new QLabel(tr("&Brush Style"));
    brushStyleLabel->setBuddy(brushStyleComboBox);

    preLabel = new QLabel(this);

    connect(penColorComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(penchange()));
    connect(penWidthspinbox,SIGNAL(valueChanged(int)),this,SLOT(brushchange()));
    connect(penStyleComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(penchange()));
    connect(brushColorComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(brushchange()));
    connect(brushStyleComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(brushchange()));
    //connect(this,SIGNAL(penchange(QPen&)),;

    QGridLayout *mainlayout=new QGridLayout(center);
    mainlayout->addWidget(penColorLabel,0,0,Qt::AlignRight);
    mainlayout->addWidget(penColorComboBox,0,1);
    mainlayout->addWidget(penWidthLabel,1,0,Qt::AlignRight);
    mainlayout->addWidget(penWidthspinbox,1,1);
    mainlayout->addWidget(penStyleLabel,2,0,Qt::AlignRight);
    mainlayout->addWidget(penStyleComboBox,2,1);
    mainlayout->addWidget(brushColorLabel,3,0,Qt::AlignRight);
    mainlayout->addWidget(brushColorComboBox,3,1);
    mainlayout->addWidget(brushStyleLabel,4,0,Qt::AlignRight);
    mainlayout->addWidget(brushStyleComboBox,4,1);
    mainlayout->addWidget(preLabel,5,0,6,2);


    setLayout(mainlayout);
时间: 2024-12-05 23:32:30

Qt在mainwindow下代码添加控件不能显示的问题的相关文章

IOS Ui控件 修改位置和尺寸,代码添加控件

所有的UI控件最终都继承自UIView,UI控件的公共属性都定义在UIView中, UIView的常见属性 UIView *superview; 获得自己的父控件对象 NSArray *subviews; 获得自己的所有子控件对象 NSInteger tag; 控件的ID(标识),父控件可以通过tag来找到对应的子控件 CGAffineTransform transform; 控件的形变属性(可以设置旋转角度.比例缩放.平移等属性) CGRect frame; 控件所在矩形框在父控件中的位置和尺

使用java代码添加控件

平时多习惯于采用xml文件来添加布局和控件,采用java代码在activity中添加控件也是一种方式,下面简单举两个例子: 1.addContentView addContentView作用类似于setContentView()来为activity初始化布局: 1 public class MainActivity extends Activity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 s

代码添加控件-从数据库提取数据

加载数据库中的数据,如果内容非常多,就显示出滚动条.类似于QQ好友列表的效果.1.先放一个Panel在窗体中Dock布局一下.2.在这个Panel里面放一个FlowLayoutPanel,设置它从上到下流式布局.3.外面的Panel需设置AutoScroll=true .超出范围就显示滚动条.4.里面的FlowLayoutPanel,设置它Dock=Top,AutoSize=true using System; using System.Collections.Generic; using Sy

代码添加控件--button

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace pp { public partial class

Question-C#窗体中代码添加控件

1 Label SnLable = new Label 2 { 3 Size = new Size(SnLength, SnLength), 4 BackColor = Color.Red, 5 Location = new Point(10, 10), 6 BorderStyle = BorderStyle.FixedSingle 7 }; 8 9 this.Controls.Add(SnLable); 写完之后不要忘记this.Controls.Add(SnLable); 原文地址:http

QT动态添加控件

在QT中,在非构造函数中添加控件步骤如下 QPushButton *btn = new QPushButton(this); btn->setGeometry(0,0,50,50); btn->setText(“Dynamic”); btn->show();//添加本行代码,控件才能显示出来

New UI-Java代码动态添加控件或xml布局

New UI-Java代码动态添加控件或xml布局  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://blog.

Qt qml中listview 列表视图控件(下拉刷新、上拉分页、滚动轴)

Qt qml中listview 列表视图控件(下拉刷新.上拉分页.滚动轴) 来源 https://www.cnblogs.com/surfsky/p/4352898.html 设置ListView涉及到将contentsY,即视图的可见部分的顶部,设置y为委托的值.另一个更改是interactive将视图设置为false.这样可以防止视图移动.用户不能再滚动列表或更改当前Item. contentY为列表上拉后列表左上角点距显示框左上解点的高度listView1.height为可显示部分的高度,

自定义下拉刷新控件

一.功能效果 1.在很多app中,在信息展示页面,当我们向下拖拽时,页面会加载最新的数据,并有一个短暂的提示控件出现,有些会有加载进度条,有些会记录加载日期.条目,有些还带有加载动画.其基本实现原理都相仿,本文中将探讨其实现原理,并封装出一个简单的下拉刷新控件 2.自定义刷新工具简单的示例 二.系统提供的下拉刷新工具 1.iOS6.0以后系统提供了自己的下拉刷新的控件:UIRefreshControl .例如,refreshControl,作为UITableViewController中的一个属