2016-09-16 3 views
-1

Как я могу получить свои данные в появившемся окне. Это консольное приложение, и все работает нормально. Я просто хочу, чтобы результат находился в окне, созданном вместо консоли.перенаправляет вывод программы в QLabel вместо консоли

#include <QApplication> 
#include <QLabel> 
#include <QString> 
#include "Prob3TableInherited.h" 

int main(int argc, char *argv[]) { 
    cout << "Entering problem number 3" << endl; 
    int rows = 5; 
    int cols = 6; 

    Prob3TableInherited tab("Problem3.txt", rows, cols); 
    const int *naugT = tab.getTable(); 

    for (int i = 0; i < rows; i++) 
    { 
     for (int j = 0; j < cols; j++) 
     { 
      cout << naugT[i*cols + j] << " "; 
     } 
     cout << endl; 
    } 
    cout << endl; 

    const int *augT = tab.getAugTable(); 
    for (int i = 0; i <= rows; i++) 
    { 
     for (int j = 0; j <= cols; j++) 
     { 
      cout << augT[i*(cols + 1) + j] << " "; 
     } 
     cout << endl; 
    } 

    // How can I pass the data? 
    QString data("Need To Pass Data Here"); 

    //Create the Window Application 
    QApplication a(argc, argv); 
    QLabel *label=new QLabel(data); 

    //Make it visible 
    label->show(); 

    return a.exec(); 
} 

ответ

0

Вы должны прикрепить ярлык к QApplication. Взгляните на этот ответ:

Adding a label to a widget

+0

Вам удалось найти ярлык в окне Qt? – Jose

0

Я просто хочу выход быть в окно, созданное вместо консоли

вы можете использовать QStringList и добавить вывод к нему вместо cout. Например, ваш первый цикл будет выглядеть

... 
QStringList outputList; 
for (int i = 0; i < rows; i++) 
{ 
    for (int j = 0; j < cols; j++) 
    { 
     outputList << naugT[i*cols + j] << " "; 
    } 
    outputList << "\n"; 
} 
outputList << "\n"; 
... 

, то вы можете добавить список наклейки следующего

QLabel * label = new QLabel(outputList.join("")); 

, которая является таким же, как

QString data = outputList.join(""); 
QLabel * label = new QLabel(data); 
+0

Благодарим за ответ, но это не сработало. – equati0n

+0

Что вы имели в виду, не работали ??? – HazemGomaa

+0

Я сделал то, что вы сказали, и код не будет компилироваться. – equati0n

0

Создать виджет QWidget *w = new QWidget() и приложите к нему ярлык

QLabel *label = new QLabel(w); 
QHBoxLayout *layout = new QHBoxLayout(); 
label->setText("your data"); 
layout->addWidget(label); 
setLayout(layout); 

чем показать виджет w->show()

Смежные вопросы