当前位置:编程学习 > wap >>

Qt QStackedWidget分页出BUG

代码如下,望各位大侠帮帮忙:


#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;
}



--------------------编程问答-------------------- 也不贴错误提示,代码也不加代码样式,谁有心情看你这么长的代码啊,我倒是做过 QStackedWidget,就是没心情分析你的代码,要是报错贴出来错误提示,再加上代码样式,如果不是报错,能编译过去就是不实现,那只能自己写gdebug分析了 --------------------编程问答--------------------
引用楼主 arthur_ps 的回复:
代码如下,望各位大侠帮帮忙:


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


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


..头晕。error在哪 --------------------编程问答-------------------- mainLayout->addWidget(stackedWidget);
这句去掉试试。。 --------------------编程问答-------------------- 有报错信息 自己仔细看看噻 --------------------编程问答-------------------- 发贴问问题有几点一定要明确说明:
1.你希望实现的目的
2.你怎么做的
3.你的问题是什么

本来别人解答你的问题就是无偿的义务行为,是否应该避免 貼大坨代码什么也不说让别人去帮你测试 的行为呢? --------------------编程问答--------------------
引用 5 楼 yiyaaixuexi 的回复:
发贴问问题有几点一定要明确说明:
1.你希望实现的目的
2.你怎么做的
3.你的问题是什么

本来别人解答你的问题就是无偿的义务行为,是否应该避免 貼大坨代码什么也不说让别人去帮你测试 的行为呢?

妞妞也会发脾气 :)
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,