【问题标题】:Qstring error. Saving from Textpool to stringQstring 错误。从文本池保存到字符串
【发布时间】:2015-06-15 17:48:18
【问题描述】:

我一直在尝试制作简单的“打字游戏”,程序会检查输入是否 = 展示的单词。

我正在尝试使用 Qt GUI,所以我放置了两个文本小部件和“播放”按钮。 但是,字符串(或 QString)有问题。

Error: no match for 'operator=' (operand types are 'QString' and 'void')
 wprowadzone = ui->taker->textChanged();
             ^

我怎样才能使这段代码工作? 感谢您的帮助。

主窗口.cpp

    #include "mainwindow.h"
#include "ui_mainwindow.h"
#include "game.h"
#include "score.h"
#include <qthread.h>



MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_actionZako_cz_triggered()
{
    this->close();
}

void MainWindow::on_actionQt_info_triggered()
{
    QApplication::aboutQt();
}

void MainWindow::on_wyjdz_button_clicked()
{
    this->close();
}


void MainWindow::on_graj_button_clicked()
{
    slowo=s.slowa[rand()%s.slowa.size()];
    ui->giver->setText(slowo);
    wprowadzone = ui->taker->textChanged();
    QThread::sleep(5);
    game();
    //ui->SCORE->display(wyniki)
}

void MainWindow::on_SCORE_overflow()
{

}

游戏.cpp

#include "game.h"
#include "mainwindow.h"
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include "slowka.h"
#include <QMainWindow>
#include <QMainWindow.h>
#include "ui_mainwindow.h"
#include <string>
#include <QStringList>




using namespace std;



game::game()
{

    int proby = 0;
    int lives = 3;
    int wynik = 0;

    while (proby > lives)
    {

        if(wprowadzone != slowo)
        {
           wynik -= 1;
           proby += 1;
        }
        else
        {
            wynik += 1;
        }
    }
}

slowka.cpp(单词数据库)

#include "slowka.h"

Slowka::Slowka()
{
    slowa<<"test";
    slowa<<"inny test";
    slowa<<"inniejszy";

}

主窗口.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include "slowka.h"



namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

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


private slots:
    void on_actionZako_cz_triggered();

    void on_actionQt_info_triggered();

    void on_wyjdz_button_clicked();

    void on_graj_button_clicked();




    void on_SCORE_overflow();

private:
    Ui::MainWindow *ui;
    Slowka s;

};

#endif // MAINWINDOW_H

游戏.h

#ifndef GAME_H
#define GAME_H
#include "mainwindow.h"
#include "slowka.h"
#include <QMainWindow>



class game
{
    Q_OBJECT
    QString slowo;
    QString wprowadzone;
public:
    game();
private:
    Slowka s;


};

#endif // GAME_H

slowka.h

#ifndef SLOWKA_H
#define SLOWKA_H
#include <QStringList>

class Slowka
{
public:
    Slowka();
    QStringList slowa;
};

#endif // SLOWKA_H

“graj”是“播放”按钮 'proby' 是失败的尝试次数 'wynik' 是分数

【问题讨论】:

    标签: c++ qt qstring


    【解决方案1】:

    http://doc.qt.io/qt-4.8/qlineedit.html#text-prop

    textChanged 是你可以在文本改变时发送的信号

    使用

    QString text() 常量

    改为

    另一个有用的方法:

    修改:布尔

    检查文本是否被用户修改

    更新以回答其他评论问题:

    最好将所有变量声明为private

    添加函数以“设置”和“获取”它们的值。

    您唯一需要提到的QString 的地方是mainwindow.h。在game.h 中,使用get 方法获取其值,使用set 更改值。

    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
        void setSlowo(QString s) { slowo = s; }
        QString getSlovo() const { return slovo; }
        // same for wprowadzone
    
    private slots:
        ......
    
    private:
        Ui::MainWindow *ui;
        Slowka s;
        QString slowo;
        QString wprowadzone;
    
    };
    

    评论我建议从设计开始,如果你写的代码太多,而没有清楚地了解你有哪些类以及它们是如何连接的,那么你以后会遇到很多麻烦。

    【讨论】:

    • 你知道 mainwindow.cpp 中的 'wprowadzone' 是否与 game.cpp 中的 'wprowadzone' 相同吗?或者我怎样才能做到这一点?
    • 他们不一样
    • 如何将这些 Qstrings 从主窗口传递到游戏,以便在那里使用它们?
    • 看看我的例子如何为你工作 - 最好你会有更多的答案,接受这个答案,因为它解决了你提出的问题。然后针对确切的问题提出另一个问题。
    • 我必须在 game.h 中添加什么?
    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多