Qt QStackedWidget分页出BUG

arthur_ps 2011-09-22 02:43:39
代码如下,望各位大侠帮帮忙:


#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent) :
QWidget(parent)
{
//支持中文实现
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb2312"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb2312"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb2312"));

widget = new QWidget;
//左侧布局
QVBoxLayout *buttonLayout = new QVBoxLayout;
QWidget *leftWidget = new QWidget(this); //新建一个QWidget
buttonLayout->addWidget(leftWidget);
QPixmap pixmap(":images/mu333.jpg"); //设置背景
QPalette palette;
palette.setBrush(leftWidget->backgroundRole(),QBrush(pixmap));
leftWidget->setPalette(palette);
leftWidget->setFixedSize(100,500);
leftWidget->setAutoFillBackground(true);

//左侧布局控件
QLabel *label1 = new QLabel(leftWidget);
label1->setText("系统管理");
QPalette pe1;
pe1.setColor(QPalette::WindowText,Qt::white);
label1->setPalette(pe1);
label1->setGeometry(QRect(25,2,75,20));
label1->setAlignment(Qt::AlignTop);

label2 = new QLabel(leftWidget);
label2->setText("资源测试");
QPalette pe2;
pe2.setColor(QPalette::WindowText,Qt::white);
label2->setPalette(pe2);
label2->setGeometry(QRect(25,100,75,20));
label2->setAlignment(Qt::AlignTop);

label3 = new QLabel(leftWidget);
label3->setText("数据系统");
QPalette pe3;
pe3.setColor(QPalette::WindowText,Qt::white);
label3->setPalette(pe3);
label3->setGeometry(QRect(25,205,75,20));
label3->setAlignment(Qt::AlignTop);

label4 = new QLabel(leftWidget);
label4->setText("查询系统");
QPalette pe4;
pe4.setColor(QPalette::WindowText,Qt::white);
label4->setPalette(pe4);
label4->setGeometry(QRect(25,305,75,20));
label4->setAlignment(Qt::AlignTop);

QPushButton *button1 = new QPushButton(leftWidget);
QPushButton *button2 = new QPushButton(leftWidget);
QPushButton *button3 = new QPushButton(leftWidget);
QPushButton *button4 = new QPushButton(leftWidget);

button1->setGeometry(25,20,50,20);
button2->setGeometry(25,125,50,20);
button3->setGeometry(25,227,50,20);
button4->setGeometry(25,330,50,20);

//左侧按钮属性设置
button1->setIcon(QIcon(":/images/Categories.png")); //系统管理按钮
button1->setIconSize(QSize(60,60));
button1->setFixedSize(55,59);
button1->setFlat(true);


button2->setIcon(QIcon(":/images/YouTube.png")); //资源测试按钮
button2->setIconSize(QSize(60,60));
button2->setFixedSize(55,59);
button2->setFlat(true);


button3->setIcon(QIcon(":/images/Calculator_alt.png")); //数据系统按钮
button3->setIconSize(QSize(80,80));
button3->setFixedSize(55,59);
button3->setFlat(true);


button4->setIcon(QIcon(":/images/RiPTones.png")); //查询系统按钮
button4->setIconSize(QSize(100,100));
button4->setFixedSize(55,59);
button4->setFlat(true);


//右边布局
QGridLayout *rightLayout = new QGridLayout;
stackedWidget = new QStackedWidget;
rightLayout->addWidget(stackedWidget);
stackedWidget->addWidget(creat_1Page);
stackedWidget->addWidget(creat_2Page);
stackedWidget->addWidget(creat_3Page);
stackedWidget->addWidget(creat_4Page);

connect(button1, SIGNAL(clicked()),stackedWidget, SLOT(slot_1()));
connect(button2, SIGNAL(clicked()),stackedWidget, SLOT(slot_2()));
connect(button3, SIGNAL(clicked()),stackedWidget, SLOT(slot_3()));
connect(button4, SIGNAL(clicked()),stackedWidget, SLOT(slot_4()));

QPixmap pixmap2(":images/ipade.png"); //设置背景
QPalette palette2;
palette2.setBrush(stackedWidget->backgroundRole(),QBrush(pixmap2));
stackedWidget->setPalette(palette2);
stackedWidget->setFixedSize(800,495);
stackedWidget->setAutoFillBackground(true);

//右侧主页按钮属性
QPushButton *button5 = new QPushButton(stackedWidget);
button5->setIconSize(QSize(60,60));
button5->setFixedSize(550,233);
button5->setGeometry(66,118,55,30);
button5->setFlat(true);

QPushButton *button6 = new QPushButton(stackedWidget);
button6->setIconSize(QSize(60,60));
button6->setFixedSize(50,50);
button6->setGeometry(319,360,55,30);
button6->setFlat(true);

QPushButton *button7 = new QPushButton(stackedWidget);
button7->setIconSize(QSize(60,60));
button7->setFixedSize(50,50);
button7->setGeometry(161,360,55,30);
button7->setFlat(true);


QPushButton *button8 = new QPushButton(stackedWidget);
button8->setIconSize(QSize(60,60));
button8->setFixedSize(50,50);
button8->setGeometry(465,360,55,30);
button8->setFlat(true);

//双表关联
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addLayout(buttonLayout);
mainLayout->addLayout(rightLayout);
mainLayout->addWidget(stackedWidget);
setLayout(mainLayout);
stackedWidget->showNormal();
}

Widget::~Widget()
{

}

void Widget::slot_1()
{
stackedWidget->setCurrentIndex(0);
}

void Widget::slot_2()
{
stackedWidget->setCurrentIndex(1);
}

void Widget::slot_3()
{
stackedWidget->setCurrentIndex(2);
}


void Widget::slot_4()
{
stackedWidget->setCurrentIndex(3);
}

void Widget::creatWidget_1()
{
creat_1Page = new QWidget;
}

void Widget::creatWidget_2()
{
creat_2Page = new QWidget;
}

void Widget::creatWidget_3()
{
creat_3Page = new QWidget;
}

void Widget::creatWidget_4()
{
creat_4Page = new QWidget;
}



...全文
186 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gemfield 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yiyaaixuexi 的回复:]

发贴问问题有几点一定要明确说明:
1.你希望实现的目的
2.你怎么做的
3.你的问题是什么

本来别人解答你的问题就是无偿的义务行为,是否应该避免 貼大坨代码什么也不说让别人去帮你测试 的行为呢?
[/Quote]
妞妞也会发脾气 :)
念茜 2011-10-28
  • 打赏
  • 举报
回复
发贴问问题有几点一定要明确说明:
1.你希望实现的目的
2.你怎么做的
3.你的问题是什么

本来别人解答你的问题就是无偿的义务行为,是否应该避免 貼大坨代码什么也不说让别人去帮你测试 的行为呢?
sczvip 2011-10-28
  • 打赏
  • 举报
回复
有报错信息 自己仔细看看噻
hzymlx 2011-09-24
  • 打赏
  • 举报
回复
mainLayout->addWidget(stackedWidget);
这句去掉试试。。
BigQiu66 2011-09-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 arthur_ps 的回复:]
代码如下,望各位大侠帮帮忙:


#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent) :
QWidget(parent)
{
//支持中文实现
QTextCodec::setCodecForCStrings(QTextCodec::codecForNa……
[/Quote]

..头晕。error在哪
我是学友 2011-09-23
  • 打赏
  • 举报
回复
也不贴错误提示,代码也不加代码样式,谁有心情看你这么长的代码啊,我倒是做过 QStackedWidget,就是没心情分析你的代码,要是报错贴出来错误提示,再加上代码样式,如果不是报错,能编译过去就是不实现,那只能自己写gdebug分析了

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧