我只是在思考我正在开发的应用程序的最佳实践.它是一个使用qt creator的简单的一个窗口应用程序.它只是启动一个QProcess并在QTextEdit框中显示输出.要做到这一点,需要在QProcess的输出和QTextEdit之间进行一些处理,但我不知道我应该在哪里做这个,我应该创建一个新的类来做到这一点,或者添加成员函数和额外的信号和插槽到我的主窗口?我不希望主窗口变得臃肿和难以阅读,但同样我不希望有更多的源文件,而不是我真正需要的.
有什么想法吗?
是否可以将ui对象(按钮,文本框等)添加到可见的qt窗口,即我有一个具有QTextEdit的窗口,用户可以在其中添加数字,然后有一个按钮可以为另一个数字添加另一个QTetEdit一个删除它的按钮.这意味着我可以添加任意数量的字段,稍后我可以对所有元素执行某种计算,因为我需要能够添加任意数量的额外对象,因此显示和隐藏元素可能效率低下.这是一个组成的例子,但它证明了我所追求的目的.
有没有人做过类似的事情?
- 更新 -
下面是我尝试的一些代码对我不起作用,代码运行时窗口已经可见:
void MainWindow::addArgument()
{
QPushButton button;
ui->addArgRowHorizontalLayout->addWidget(&button);
button.show();
this->show();
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道我做错了什么,一切都在qtcreator中自动完成并编译没有错误所以我不知道下一步该去哪里.
Ĵ
我正在阅读'红宝石编程语言'并且遇到了以下代码.
a.inject do | sum, x |
sum + x
end
Run Code Online (Sandbox Code Playgroud)
我理解x包含一个将被传递给bock的元素但是'sum'部分让我感到困惑,它是某种运算符或函数还是只是像x这样的另一个变量.我理解x变量可以被称为f,或者v,但是如果是这样的话,ruby知道x是那个将元素传递给迭代器的变量,那么它可以很容易地将变量传递给sum(如果它甚至是变数).
我希望这是有道理的,因为我总是发现它必须把我的困惑放到工作中,好像我更好地理解问题的本质,我会更有可能找到我自己的解决方案.
谢谢!
我最近在Python上创建了很多类,我通常只访问这样的实例变量:
object.variable_name
Run Code Online (Sandbox Code Playgroud)
但是我常常看到来自其他模块的对象会使包装器方法访问这样的变量:
object.getVariable()
Run Code Online (Sandbox Code Playgroud)
这些不同方法有哪些优点/缺点,是否有普遍接受的最佳实践(即使有例外)?
我目前通过创建一个名称值为dict键的对象的dict来基于其名称属性取消对象列表,如下所示:
obj_dict = dict()
for obj in obj_list:
if not obj.name in obj_dict:
obj_dict[obj.name] = obj
new_obj_list = obj_dict.items()
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更快或更多的pythonic方式来做到这一点.
当我尝试向一个QString发出readAllStandardOutput()时,即使我将QByteStream转换为QString,也不知道为什么会这样?继承人来源
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QProcess>
#include <QString>
#include "exeprocess.h"
/*main window ---------------------------------------*/
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QProcess *proc;
signals:
void outLog(QString outLogVar); //plug this into the QTextEdit box
public slots:
void logReady(); // plug the QProcess into this
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)
mainwindow.cpp
#include <QByteArray>
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{ …Run Code Online (Sandbox Code Playgroud) 我需要将一些数据表示为一个层次结构,其中一个对象可以有一个父项和多个子项.我还需要能够以与孩子相同的方式获得孩子的父母.
我试过这个
class Root():
def __init__(self):
self.child = Node(self)
class Node():
def __init__(self, parent):
self.parent = parent
Run Code Online (Sandbox Code Playgroud)
有没有一种解决这个问题的常用方法