• 7174阅读
  • 4回复

QPushButton去改變QLabel的 顯示 [复制链接]

上一主题 下一主题
离线qoo123456
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-17

我設計一個UI要測試一個QPushButton去改變QLabel的 顯示,但是編譯室沒問題的
都會跑出這個字眼
The program has unexpectedly finished.


#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "ui_mainwindow.h"
class QLabel;
class QPushButton;
namespace Ui {
    class MainWindow;
}


class MainWindow : public QMainWindow
{
    Q_OBJECT


public:
   explicit
    MainWindow(QWidget *parent = 0);
    ~MainWindow();


private:
   Ui::MainWindow *ui;
   QPushButton *PB;
   QLabel *label;
private slots:
    void ck_bt();
};


#endif // MAINWINDOW_H

----------------------------------------------------------------------------------------------------------------
#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
connect(PB,SIGNAL(clicked()),this,SLOT(ck_bt()));
}


MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::ck_bt()
{
label->setText("1234");
}


-----------------------------------------------------------
#include <QtGui/QApplication>
#include "mainwindow.h"


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();


    return a.exec();
}



离线dbzhang800

只看该作者 1楼 发表于: 2010-11-17
在學習Qt之前,你需要一本C++的書籍。

你兩個指針指向了哪兒?
   QPushButton *PB;
   QLabel *label;
离线roywillow

只看该作者 2楼 发表于: 2010-11-17
是用设计师设计了ui的吗?
按钮和标签似乎还只是个指针,根本就没new,没放到ui上么……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线pyxy217
只看该作者 3楼 发表于: 2010-11-18
同意楼上观点:
但是因为你在。h文件里有:
QPushButton *PB;
   QLabel *label;
所以感觉你应该是直接写的源代码……
你需要在.cpp文件中重新建立new QpushButton和new QLabel。

但是如果是用ui的话,你试试在label->setText("1234");前面加上ui看看行不行……
离线cspp

只看该作者 4楼 发表于: 2010-11-18
有一种错误叫空指针
快速回复
限100 字节
 
上一个 下一个