更改QStackedWidget中的小部件
Changing widget in QStackedWidget
我的堆叠小部件中有两个自定义小部件,我希望能够从一个更改为另一个。我按下一个按钮,但当我当前单击它时,程序就会终止。
这是第一个自定义小部件.cpp:
#include "loginpage.h"
#include "ui_loginpage.h"
#include "mainwindow.h"
#include "mainpage.h"
#include "QtGui"
LoginPage::LoginPage(QWidget *parent) :
QWidget(parent),
ui(new Ui::LoginPage)
{
ui->setupUi(this);
connect(ui->loginPushButton, SIGNAL(clicked()), this, SLOT(doLogin()));
}
LoginPage::~LoginPage()
{
delete ui;
}
QString LoginPage::getUsername()
{
QString userName = ui->usernameLineEdit->text();
return userName;
}
QString LoginPage::getPassword()
{
QString passWord = ui->passwordLineEdit->text();
return passWord;
}
void LoginPage::doLogin()
{
QString username = getUsername();
QString password = getPassword();
bool check = checkCredentials(password, username);
if(check == true)
{
MainWindow *main;
main = new MainWindow;
main->test();
}else
{
QMessageBox::information(this, tr("incorrect"), tr("incorrect"));
}
}
...
这是主窗口。cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "loginpage.h"
#include "ui_loginpage.h"
#include "mainpage.h"
#include <QtGui>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::test()
{
ui->stackedWidget->setCurrentIndex(1);
}
感谢的任何帮助
我认为你的意思是它崩溃而不是终止。在您的doLogin()
中,您编写
MainWindow *main;
main->test();
但是在这一点上main
仍然是一个空指针。因此,调用test()
毫无意义。因此,您的程序可能会崩溃。
首先qDebug()
是Qt程序员的朋友,你可以把qDebug() << "In x function"
放在那里,看看代码在哪里。如果不能看到您的UI文件,或者当错误发生时,我猜您将QStackedWidget的currentIndex设置为1,而它只有一个关联的小部件。仔细检查UI是否设置正确,并检查调试跟踪以查看其崩溃的位置。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用递归的数组的最小值.这是怎么回事
- 为什么在浮点中从大到小会引入更多的误差
- 找到两对数字,使它们的乘积的绝对差最小化
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 如何将部分流作为参数传递
- 如何在QT中的自定义视频小工具t上绘制矩形
- 在二维数组中查找最小值和最大值?
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何找到大于整数的最小数字
- 小字符串优化(调试与发布模式)
- QtDesigner自定义小部件
- C++ 创建小部件数组