小编tri*_*elt的帖子

QML文本中的HTML格式

我有一部分HTML代码,显示小表.在浏览器中,它看起来像在图片中: HTML表格

但是,当我想在Text QML(根据文档,应该支持HTML)中显示它时,我看到:

QML中的HTML表格

(橙色矩形是矩形的一部分,是父的mytext)

Text {
     id: mytext
     anchors.fill: parent
     text: "<div><table border='1'><caption><h4>Test stats</h4>"+
     "</caption><tr bgcolor='#9acd32'><th/><th>Number1</th><th>Number2</th></tr> <tr><th>Line1</th>"+
        "<td> 0 </td> <td> 1 </td> </tr> <tr><th>Line2</th> <td> 0 </td> <td> 1 </td> </tr>"+
        "<tr><th>Line3</th> <td> 0 </td> <td> 0 </td> </tr> <tr><th>Line4</th> <td> 1 </td> <td> 0 </td> </tr>"+
        "<tr><th>Line5</th> <td> 1 </td> <td> 1 </td> </tr> <tr><th>Line6</th> <td> 1 </td> <td> 1 </td> </tr> </div>"
}
Run Code Online (Sandbox Code Playgroud)

那么如何在QML(QtQuick 2.0)中正确显示这个HTML表格呢?是否可以不使用WebView?

html qt qml qtquick2

10
推荐指数
1
解决办法
5384
查看次数

如何在Qt中更改窗口标题和中央窗口小部件?

嗨,我在Qt中更改窗口标题和中央窗口小部件时遇到问题.有MainWindow:

class MainWindow : public QMainWindow
  {
// (...)
  QStackedWidget* widgets;
  Quiz* widget1, *widget2;
  }
Run Code Online (Sandbox Code Playgroud)

并且有一个类测验:

class Quiz : public QWidget
  {
  public slots:
    void myClicked();
  }
Run Code Online (Sandbox Code Playgroud)

我想在点击按钮后更改MainWindow标题,该按钮是测验的一个元素(并且它与插槽myClicked连接).

void Quiz::myClicked()
 {
 static_cast<MainWindow>(parent).myFunction();
 }

void MainWindow::myFunction()
{
widget2 = new Quiz(this,2);
widgets->addWidget(widget2);
std::cout<<"current wdgt: " << widgets->currentIndex() << std::endl; // shows: 0
widgets->setCurrentWidget(widget2);
std::cout<<"current wdgt " << widgets->currentIndex() << std::endl; // shows: 1

setWindowTitle("newTitle");
std::cout<<"Title is " << windowTitle().toStdString() << std::endl;

}
Run Code Online (Sandbox Code Playgroud)

所以widgets-> currentIndex显示了新窗口小部件的索引,但窗口中没有任何更改.窗口标题也是同样的问题 - 方法windowTitle()返回新标题,但标题栏上的标题是旧的.为什么?如果我在Quiz :: myClicked中更改标题:

parent->setWindowTitle("newTitle");
Run Code Online (Sandbox Code Playgroud)

有用!为什么它有多奇怪?请帮忙.

c++ qt qwidget qtgui qmainwindow

5
推荐指数
1
解决办法
3669
查看次数

在Qt中被doubleclickevent和mousepressevent混淆

情况是:

在A面QGraphicsView,我用它的doubleClickEvent功能来制作一个QGraphicsItem。我重写QGraphicsItemmousePressEvent功能以仅打印qDebug信息。

但是,我发现的是:即使我双击创建它QGraphicsItem,也会调用新创建QGraphicsItemmousePressEvent

这将如何发生?我该怎么做才能避免这种情况?

c++ qt qgraphicsview qgraphicsitem

4
推荐指数
1
解决办法
643
查看次数

Python类方法在类外

我必须使用一些 Python 库,其中包含具有各种实用程序的文件:类和方法。其中一种方法是按以下方式定义的(我无法放置完整代码):

@classmethod
def do_something(cls, args=None, **kwargs):
Run Code Online (Sandbox Code Playgroud)

但这个声明是在任何类之外的。我怎样才能访问这个方法?调用 bydo_something(myClass)会出现错误:TypeError: 'classmethod' object is not callable。在类之外创建类方法的目的是什么?

python class-method

4
推荐指数
1
解决办法
1803
查看次数

如何将OCaml对象文件与Core模块链接?

我有简单的程序,它使用Core.Std模块中的函数,例如:

open Core.Std
let _ = List.last [1;2;3]
Run Code Online (Sandbox Code Playgroud)

我可以通过ocamlfind或编译和链接它ocamlbuild:

ocamlfind ocamlc -package core -linkpkg -thread app.ml 
ocamlbuild -use-ocamlfind -pkgs core -tag thread app.native
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用"普通"OCaml编译器编译和链接此类文件:

ocamlc -c -I ~/.opam/system/lib/core_kernel/ -I ~/.opam/system/lib/core/ app.ml 
ocamlc ~/.opam/system/lib/core_kernel/core_kernel.cma ~/.opam/system/lib/core/core.cma app.cmo 
Run Code Online (Sandbox Code Playgroud)

上述命令的最后一行给出以下错误:

File "_none_", line 1:
Error: Error on dynamically loaded library: /home/maciej/.opam/system/lib/stublibs/dllcore_kernel_stubs.so: /home/maciej/.opam/system/lib/stublibs/dllcore_kernel_stubs.so: undefined symbol: caml_ba_alloc
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

ocaml linker-errors ocaml-core

4
推荐指数
1
解决办法
139
查看次数

QTableView:动态更改 rowCount

我使用 aQTableView来显示只读数据。该模型基于QList包含另一个QList. 像这样的东西:

typedef struct
{
    int range;
    QString description;
} Field;

typedef struct
{
    QString name;
    QList<Field> fields;
} Item;

QList<Item> items;
Run Code Online (Sandbox Code Playgroud)

在我的QAbstractTableModel实现中,我有一个选择当前的插槽item

void setCurrentItem(int idx)
{
    // checks for errors (omissis)
    currentItemIdx = idx;

    // ask to redraw the table
    emit dataChanged(this->index(0, 0), this->index(rowCount(), columnCount()));
}
Run Code Online (Sandbox Code Playgroud)

模型的所有逻辑都依赖于该项目,例如:

int MyModel::rowCount(const QModelIndex&) const {
    return items.at(m_currentItemIdx).fields.count();
}

QVariant MyModel::data(const QModelIndex &index, int role) const {
    if (!index.isValid()) return QVariant();
    if …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtableview

2
推荐指数
1
解决办法
1511
查看次数

如何在GUI中使用QStackedWidget?

我是Qt的新手,我必须QStackedWidget使用Qt设计器工具为这个我找到的类创建一个具有多个窗口的GUI .

我添加了QStackedWidget使用add new-> Qt designer form class-> Qstackwidget

之后我在主窗口中创建了这个类的对象

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<stackedwidget.h>

namespace Ui { class MainWindow; }

class MainWindow : public QMainWindow {
    Q_OBJECT

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

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
    StackedWidget *stk; };

#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)

然后我试图通过以下方式显示StackedWidget:

#include "mainwindow.h"
#include "ui_mainwindow.h"

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

}

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

void MainWindow::on_pushButton_clicked()
{
    stk = new StackedWidget(this); …
Run Code Online (Sandbox Code Playgroud)

c++ user-interface qt qt-creator qstackedwidget

2
推荐指数
1
解决办法
8682
查看次数

如何从 NiFi 注册表中的 git 恢复流量?

我在 NiFi 注册表 0.3 中使用 GitFlowPersistenceProvider。今天,我创建了另一个 NiFi 注册表,我想使用相同的提供程序加载前一个注册表中的所有流。不幸的是,没有任何反应 - 任何存储桶或流都不会重新创建。我尝试手动创建所有存储桶,但即使如此,也不会导入任何流。

GitFlowPersistenceProvider 文档指出:

当 NiFi 注册表启动时,该提供程序会读取 Git 提交历史记录并查找这些bucket.yml 文件以恢复每个快照版本的存储桶和流。

我应该如何使用 GitFlowPersistenceProvider 将现有流加载到新的 NiFi 注册表中?

apache-nifi apache-nifi-registry

2
推荐指数
1
解决办法
2453
查看次数

如何使用QlineEdit输入整数值

我正在尝试使用QlineEdit

运行程序并将值存储为变量以供以后使用时,如何在编辑栏中输入值。到目前为止,我只发现了如何使用

void parameter_settings::on_lineEdit_textEdited(const QString &arg1)

{
    ui->lineEdit->setText("");
}
Run Code Online (Sandbox Code Playgroud)

我有一个GUI,要求用户输入特定范围内的值。该值将作为变量存储,以备后用。我已经阅读了有关验证器的信息,但无法使其按预期工作。

c++ qt qlineedit

1
推荐指数
1
解决办法
1万
查看次数

如何将源IP地址设置为0.0.0.0?

我想写一个简单的DHCP客户端(它将在WLAN上工作),我有一个正确发送初始消息的问题DHCP DISCOVER- 它被发送(我在捕获WLAN接口时在Wireshark中看到它),但源地址是我的地址适配器.如何将IP设置为"0.0.0.0"?

这是我的代码的一部分:

    sockaddr_in src_addr;
    memset(&src_addr, 0, sizeof(struct sockaddr_in));
    src_addr.sin_family = AF_INET;
    src_addr.sin_port = htons(m_sport);
    src_addr.sin_addr.s_addr = htonl(INADDR_ANY);
    status = bind(m_sockfd, reinterpret_cast<sockaddr *>(&src_addr), sizeof(sockaddr_in));
Run Code Online (Sandbox Code Playgroud)

当我尝试时src_addr.sin_addr.s_addr = inet_addr("0.0.0.0");,源地址仍然是从eth0(10.132 ...)设置的.

c++ sockets linux dhcp

0
推荐指数
1
解决办法
914
查看次数