2016-12-16 79 views
-3

GUI:無效使用C++非靜態數據成員的

class PythonShell: public QMainWindow 
{ 
    Q_OBJECT 

public: 
    PythonShell(QWidget *parent = 0); 
    ~PythonShell(); 
    QPlainTextEdit* OutputTextEdit; 

main.cpp中:

static PyObject* redir_print(PyObject* self, PyObject* args) 
{ 
    const char* s; 
    if(!PyArg_ParseTuple(args,"s",&s)) 
     return nullptr; 
    PythonShell::OutputTextEdit->appendPlainText(s); 
    Py_RETURN_NONE; 
} 

Error: Invalid use of non-static data member OutputTextEdit .

有什麼不對?

+5

錯誤說話。 **您需要在'PythonShell'實例**上調用'OutputTextEdit',您可以不**使用靜態方式(「PythonShell :: OutputTextEdit」是非法的)。 – Mike

回答

0

您需要將PythonShell帶入現實生活中,方法是創建一個對象PythonShell

PythonShell obj; 

,然後訪問其成員爲自己

obj.OutputTextEdit->appendPlainText(s); 
相關問題