- 56
- 0
一个简单的接受用户名和密码的界面程序,槽函数暂时为空,编译可以通过,运行时出错。
//passwddialog.h
#ifndef PASSWDDIALOG_H
#define PASSWDDIALOG_H
#include <QDialog>
class QLabel;
class QLineEdit;
class QPushButton;
class PasswdDialog : public QDialog{
Q_OBJECT
public:
PasswdDialog(QWidget* parent = 0);
private slots:
void okClicked();
void onLineEditChanged(const QString& str);
private:
QLabel* usernameLabel;
QLabel* passwdLabel;
QLineEdit* usernameLineEdit;
QLineEdit* passwdLineEdit;
QPushButton* okButton;
QPushButton* cancelButton;
};
#endif
//passwddialog.cpp
#include <QtGui>
#include "passwddialog.h"
PasswdDialog::PasswdDialog(QWidget* parent)
: QDialog(parent)
{
usernameLabel = new QLabel(tr("&Username:"));
usernameLineEdit = new QLineEdit;
usernameLabel->setBuddy(usernameLineEdit);
passwdLabel = new QLabel(tr("&Password:"));
passwdLineEdit = new QLineEdit;
passwdLabel->setBuddy(passwdLineEdit);
okButton = new QPushButton(tr("&Ok"));
okButton->setDefault(true);
okButton->setEnabled(false);
cancelButton = new QPushButton(tr("&Cancel"));
connect(okButton, SIGNAL(clicked()),
this, SLOT(okClicked()));
connect(cancelButton, SIGNAL(clicked()),
this, SLOT(close()));
connect(usernameLineEdit, SIGNAL(textChanged(const QString&)),
this, SLOT(onLineEditChanged(const QString&)));
connect(passwdLineEdit, SIGNAL(textChanged(const QString&)),
this, SLOT(onLineEditChanged(const QString&)));
QHBoxLayout* topLayout = new QHBoxLayout;
topLayout->addWidget(usernameLabel);
topLayout->addWidget(usernameLineEdit);
QHBoxLayout* middleLayout = new QHBoxLayout;
middleLayout->addWidget(passwdLabel);
middleLayout->addWidget(passwdLineEdit);
QHBoxLayout* bottomLayout = new QHBoxLayout;
bottomLayout->addWidget(okButton);
bottomLayout->addWidget(cancelButton);
bottomLayout->addStretch();
QVBoxLayout* layout = new QVBoxLayout;
layout->addLayout(topLayout);
layout->addLayout(middleLayout);
layout->addLayout(bottomLayout);
setLayout(layout);
setWindowTitle(tr("Sign in"));
setFixedHeight(sizeHint().height());
}
void PasswdDialog::okClicked(){
;
}
void PasswdDialog::onLineEditChanged(const QString& str){
;
}
//main.cpp
#include <QApplication>
#include "passwddialog.h"
int main(int argc, char** argv){
QApplication app(argc, argv);
PasswdDialog* passwdDialog;
passwdDialog->show();
return app.exec();
}
编译没问题,运行出错:
➜ passwd ./passwd
Maximum number of clients reached: cannot connect to X server :0
[1] 4766 segmentation fault (core dumped) ./passwd
qt新人,求大家解惑。多谢!
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
剑鬼非人哉 普通会员 1楼
在Qt中,如果程序运行出错,可能的原因有很多,例如代码有误、连接问题、资源管理错误、界面布局错误等。以下是一些常见的解决方法:
-
检查代码:首先,需要仔细检查错误消息,看错误的具体信息,这可以帮助你找出问题的原因。
-
使用调试器:大多数Qt开发环境都内置了调试器,你可以通过设置断点,逐步执行代码,查看变量的值,从而找出问题所在。
-
查看错误日志:如果错误消息中包含了错误日志,你也可以通过查看这些日志来找出问题。
-
重启电脑:有时候,简单的重启电脑可能就能解决问题。
-
使用版本控制工具:如果你的程序有多个版本,你可以尝试使用版本控制工具(如Git)来追踪错误发生的时间和位置。
-
搜索在线帮助:如果你对某个特定的问题仍然没有答案,可以尝试在网上搜索相关的问题和解决方案。
-
寻求专业人士的帮助:如果你无法解决问题,可能需要寻求专业人士的帮助,例如Qt的开发者或IT支持团队。
希望这些方法能帮助你解决问题。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
