当我运行它时它会立即完成并且不会显示任何内容。我找不到任何错误,#qt也没有人。我有其他应用程序正常工作,所以我不确定。它与createForm调用有关,如果我在构造函数中省略了该调用,我会显示默认的QWidget。
captchit.pro
#-------------------------------------------------
#
# Project created by QtCreator 2011-02-26T20:58:23
#
#-------------------------------------------------
QT += core gui network
TARGET = captchit
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
的main.cpp
#include "QtGui/QApplication"
#include "widget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget mainWidget;
mainWidget.show();
return a.exec();
}
widget.h
return a.exec();
widget.cpp
class QPixmap;
class QLabel;
class QLineEdit;
class QPushButton; class Widget : public QWidget
{
Q_OBJECT public:
Widget(QWidget *parent = 0); private slots:
void on_refreshButton_pressed();
void on_submitButton_pressed();
void on_closeButton_pressed(); private:
QPixmap captchaImage;
QLabel *imageLabel;
QLabel *statusLabel;
QLineEdit *captchaLineEdit;
QPushButton *submitButton;
QPushButton *refreshButton;
QPushButton *closeButton; }; #ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
void createForm();
void createActions();
void getCaptcha();
void submitCaptcha();
endif // WIDGET_H
#include <QWidget>
答案 0 :(得分:2)
在使用它们之前,您可能需要在构造函数中初始化您的私有类成员。
Widget::Widget(QWidget* parent) :
QWidget(parent)
{
captchaImage = new QPixmap;
imageLabel = new QLabel(this);
statusLabel = new QLabel(this);
captchaLineEdit = new QLineEdit(this);
submitButton = new QPushButton(this);
refreshButton = new QPushButton(this);
closeButton = new QPushButton(this);
createForm();
// createActions();
}
另请注意,QPixmap不是从QObject派生的,因此您必须手动删除它。最好从类中删除QPixmap *captchaImage
成员,并在代码中使用临时QPixmap对象。
答案 1 :(得分:0)
哎呀,这是因为我忘了初始化我的所有组件,herp derp。