私はプロジェクトを開発していて、最初はGUIなしでプロジェクトを作成し始めましたが、現在はQtに移植していますが、問題があります。
別のファイルに「古い」実装があり、QTextBrowserに出力するために、そこからMainWindowウィジェットにアクセスしようとしましたが、アクセスできません。
mainwindow.cppに私はこれを持っています:
void MainWindow::addString(char* text)
{
std::string input = text;
ui->textBrowser->append(QString::fromStdString(input));
return;
}
mainwindow.h:
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_showWelcome_triggered();
void on_showArithmetic_triggered();
private:
Ui::MainWindow *ui;
public slots:
void btnResolveClicked();
void btnClearClicked();
void hideAll();
void addString(char* output);
};
#endif // MAINWINDOW_H
そしてsimple_mode.cppで:
void test()
{
MainWindow *gui = new MainWindow;
gui->addString("WORKS");
MainWindow:: = gui;
}
ただし、これは必要なテキストブラウザに「WORKS」を追加しません。メインウィンドウと同じではないテキストブラウザの別のインスタンスに追加すると思います。
編集:私がやりたかったのは、simple_mode.cppからtextbrowserに直接テキスト行を追加することでした。ちなみに、simple_modeはQtの助けを借りずに書かれたので、std文字列を使用しました。現在、textbrowserウィジェットは仮想端末の出力画面として機能し、以前のようにprintfを使用する代わりに、textbrowserに行を追加したいと思いました。 。しかし、私はすでに自分の道を見つけました、私は今これを必要としません。
助けが必要だった