- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 QT 的新手,我正在尝试创建一个 kalk。可以在 QListWidget 上插入一个 QMap 对象吗?
我会解释:
我有这个主窗口
在底部有一个 QListWidget,我想要做的是在列表中添加我在构造函数中创建的所有 QMap 对象以及我在添加攻击时创建的对象。
基本窗口.h
#ifndef BASEWINDOW_H
#define BASEWINDOW_H
#include <QMainWindow>
#include <QWidget>
#include <QGridLayout>
#include <QLineEdit>
#include <QMessageBox>
#include <QTextEdit>
#include <QListWidget>
#include <QPushButton>
class baseWindow : public QWidget
{
Q_OBJECT
public:
explicit baseWindow(QWidget *parent = 0);
public slots:
void changeKalkClicked();
void addClicked();
void clearClicked();
void deleteClicked();
void itemSelected();
private:
QPushButton* addButton;
QPushButton* clearButton;
QPushButton* deleteButton;
QLineEdit* displayBA;
QMap<QString,BaseAttack> storedBA;
QListWidget* list;
};
基本窗口.cpp
baseWindow::baseWindow(QWidget *parent) : QWidget(parent)
{ //Omitted the button/layout/LineEdit creation
list = new QListWidget;
storedBA.insert(tr("Empty"),BaseAttack());
storedBA.insert(tr("First"),BaseAttack());
QListWidgetItem* prova = new QListWidgetItem;
prova->setText(tr("Try"));
list->addItem(prova);
}
这可能吗?我需要创建从 QMap 到 QListWidget 的连接吗?
最佳答案
解决方案很简单,您只需使用按下的项目的文本,我们使用 QMap 获取 BaseAttack,但要以简单的方式工作,BaseAttack 类必须有一个复制构造函数。
*.h
private slots:
void onItemClicked(QListWidgetItem *item);
*.cpp
storedBA.insert(tr("Empty"), BaseAttack());
storedBA.insert(tr("First"), BaseAttack());
QMapIterator<QString, BaseAttack> i(storedBA);
while (i.hasNext()) {
i.next();
list->addItem(i.key());
}
connect(list, &QListWidget::itemClicked, this, &baseWindow::onItemClicked);
}
void baseWindow::onItemClicked(QListWidgetItem *item)
{
BaseAttack ba = storedBA[item->text()];
}
关于c++ - 在 QListWidget 中添加 QMap 项并选择该项作为事件项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51675316/
我正在通过单击 ui 上的按钮更改 QListWidgetItem 标题(QListWidgetItem 文本),在此之下我还调用了 repaint() 和 update(),但标题不会更改(刷新),
我有课 class MyClass { public: QString name; int age; }; ... MyClass* itm1= new MyClass(); itm1
我的应用程序 (Qt 4.6) 要求我在列表中显示某些消息,该列表在添加新行时总是向下滚动(因此最近的行始终可见)。 由于我在包括显示这些单行消息在内的整个过程中遇到性能问题,所以我运行了一些测试并发
我有一个 QListWidget,里面有一些小部件: QListWidgetItem* w = new QListWidgetItem(ui->listWidget); ui->listWidget-
是否可以根据其内容调整 QListWidget 的高度和宽度? sizeHint() 始终返回 256, 192,无论其内容是什么。 QListWidgetItem 的 sizeHint() 返回 -
我用一些项目创建了 QListWidget。 QHBoxLayout* h_layout = new QHBoxLayout; h_layout->setMargin( 0 ); me
我正在 Qt 中创建一个可排序列表。该代码对于向下滚动效果非常好,但是当我在向下滚动列表后获取可拖动项目时遇到一些问题。我添加了一些测试用例屏幕截图以便更好地理解 这是测试用例代码 #incl
我是 Qt 框架的新手。在新应用程序中,我想创建包含自定义项目的列表。这些项目非常简单,必须包含标题标签、缩略图和描述标签 (picture here) 现在我不想玩自定义绘图和所有这些东西,因为我认
我创建了一个自定义 QListWidget,其中添加了自定义列表小部件(在本例中只是 QPushButton 小部件),所有设置都添加到它的 QListWidgetItems 中,以便我可以从 QPu
我有一个带有一系列 QListWidget 的 GUI,第一个 QListWidget 应该有文本项和图标项,图标的标签位于侧面。其他 QListWidget 的项目应与第一个 QListWidget
我在 PySide2 中有一个 QListWidget,我希望所选项目具有不同的颜色。这可能吗?我将附上两张图片来演示。 我目前拥有的: 这就是我想要的: 最佳答案 您必须使用委托(delegate)
我想创建一个包含许多这些项目的 QListView 或 QListWidget。我研究过创建委托(delegate)并使用 setItemWidget 来设置小部件。我在这两方面都遇到困难。 下面是在
我需要在“.ui”文件中的 QListWidget 提出的不同选项中包含文本和希腊符号(用于简单的数学方程)(我以前使用 Qt Designer,如果重要的话我喜欢 python)。我希望选项显示如下
删除QListWidget中的一项后,我在更新它时遇到了一些问题。 这是代码的一部分: class Window(QMainWindow): list_1 = [] #The items are
我想写一个“无限滚动”的列表小部件。滚动应该根据计时器自动发生。不会有任何用户交互。例如,该列表包含项目 0-100。如果滚动区域达到第 100 项,则显示的下一个项目应该是第 1 项,依此类推(如滚
在 Qt 4.6.1 上,当我连接来自 QListWidget 的 itemChanged 信号时,我没有看到每次编辑时的连续发射行为,如中所述 Qt - signal for when QListW
我问这个问题是因为我不知道如何用谷歌搜索它,我找不到合适的关键字。 我有一个包含字符串的QListWidget。字符串很长,如果我禁用水平滚动,这正是我想要的,那么文本以...结尾,因为它太长了。 我
在我的 QMainWindow 构造函数中,我读取了一个数据库并用项目填充了我的 QListWidget。显然没有选择任何项目,所以我必须自己做。我还有一个插槽,当我单击列表中的项目时将调用它。 我试
我有一个包含多个项目的 QListWidget,每个项目都像一个按钮,在单击时做出响应。我遇到了一个问题,如果您单击一个项目并将鼠标拖动到屏幕上除您单击的项目之外的任何其他位置,那么程序将导致段错误并
如何使我的 QListWidget 高度与我的主窗口相同? 因此,如果我更改主窗口,它必须调整大小,如果无法在小部件中查看所有列表,则使滚动条可见,等等。 最佳答案 Qt 有一个叫做 layouts
我是一名优秀的程序员,十分优秀!