feat(vqt6): 新增 QTreeWidget/QTreeWidgetItem 桥接与树统计助手

This commit is contained in:
TermiNexus committed 2026-09-03 11:01:59 +08:00
1 parent 90a58d05b1
commit 2e72ef0359
5 files changed
+410

No files matched your search

+178
View File
@@ -85,6 +85,56 @@ def _w_text_of(qstr: QtStringPtr) -> str:
return s
# ============================================================
# 树状控件统计助手(返回 int,规避跨模块 FFI 返回指针)
# 叶子勾选态: 0=未选 1=半选 2=选中
# ============================================================
def qtree_checked_count(tw: QtTreeWidgetPtr) -> int:
"""统计被勾选的叶子节点数"""
n: int = 0
gi: int = 0
top_n: int = vqt6_qtreewidget_top_level_item_count(tw)
while gi < top_n:
g: QtTreeWidgetItemPtr = vqt6_qtreewidget_top_level_item(tw, gi)
ci: int = 0
cn: int = vqt6_qtreewidgetitem_child_count(g)
while ci < cn:
it: QtTreeWidgetItemPtr = vqt6_qtreewidgetitem_child(g, ci)
if vqt6_qtreewidgetitem_check_state(it) == 2:
n += 1
ci += 1
gi += 1
return n
def qtree_checked_size(tw: QtTreeWidgetPtr) -> int:
"""统计被勾选叶子节点的磁盘占用合计(MB)"""
mb: int = 0
gi: int = 0
top_n: int = vqt6_qtreewidget_top_level_item_count(tw)
while gi < top_n:
g: QtTreeWidgetItemPtr = vqt6_qtreewidget_top_level_item(tw, gi)
ci: int = 0
cn: int = vqt6_qtreewidgetitem_child_count(g)
while ci < cn:
it: QtTreeWidgetItemPtr = vqt6_qtreewidgetitem_child(g, ci)
if vqt6_qtreewidgetitem_check_state(it) == 2:
mb += vqt6_qtreewidgetitem_data_int(it)
ci += 1
gi += 1
return mb
def qtree_click_toggle(tw: QtTreeWidgetPtr):
"""点击带子节点的当前行 → 展开/折叠"""
cur: QtTreeWidgetItemPtr = vqt6_qtreewidget_current_item(tw)
if cur is None:
return
if vqt6_qtreewidgetitem_child_count(cur) > 0:
ex: int = vqt6_qtreewidgetitem_is_expanded(cur)
vqt6_qtreewidgetitem_set_expanded(cur, 1 - ex)
@t.NoVTable
class QApplication:
"""QApplication 包装(不透明指针)"""
@@ -1016,6 +1066,132 @@ class QListWidget:
_w_set_enabled(self._ptr, enabled)
@t.NoVTable
class QTreeWidgetItem:
"""QTreeWidgetItem 包装(树节点,勾选态 0=未选 2=选中)"""
_ptr: QtTreeWidgetItemPtr
def __init__(self, text: str = ""):
qs: QtStringPtr = vqt6_qstring_create(text)
self._ptr = vqt6_qtreewidgetitem_create(qs)
vqt6_qstring_free(qs)
if self._ptr is None:
raise RuntimeError("Failed to create QTreeWidgetItem")
def setText(self, text: str):
qs: QtStringPtr = vqt6_qstring_create(text)
vqt6_qtreewidgetitem_set_text(self._ptr, qs)
vqt6_qstring_free(qs)
def text(self) -> str:
return _w_text_of(vqt6_qtreewidgetitem_text(self._ptr))
def addChild(self, child: "QTreeWidgetItem"):
vqt6_qtreewidgetitem_add_child(self._ptr, child._ptr)
def childCount(self) -> int:
return vqt6_qtreewidgetitem_child_count(self._ptr)
def child(self, index: int) -> "QTreeWidgetItem":
it = QTreeWidgetItem()
it._ptr = vqt6_qtreewidgetitem_child(self._ptr, index)
return it
def setCheckable(self, checkable: int):
vqt6_qtreewidgetitem_set_checkable(self._ptr, checkable)
def setChecked(self, checked: int):
if checked != 0:
vqt6_qtreewidgetitem_set_check_state(self._ptr, 2)
else:
vqt6_qtreewidgetitem_set_check_state(self._ptr, 0)
def isChecked(self) -> int:
return vqt6_qtreewidgetitem_check_state(self._ptr)
def setSize(self, mb: int):
"""把磁盘占用(MB)存到节点 UserRole(统计用)"""
vqt6_qtreewidgetitem_set_data_int(self._ptr, mb)
def setExpanded(self, expanded: int):
vqt6_qtreewidgetitem_set_expanded(self._ptr, expanded)
def isExpanded(self) -> int:
return vqt6_qtreewidgetitem_is_expanded(self._ptr)
@t.NoVTable
class QTreeWidget:
"""QTreeWidget 包装"""
_ptr: QtTreeWidgetPtr
def __init__(self, parent: "QWidget | None" = None):
if parent is not None and parent._ptr is not None:
self._ptr = vqt6_qtreewidget_create_with_parent(parent._ptr)
else:
self._ptr = vqt6_qtreewidget_create()
if self._ptr is None:
raise RuntimeError("Failed to create QTreeWidget")
def addTopLevelItem(self, item: "QTreeWidgetItem"):
vqt6_qtreewidget_add_top_level_item(self._ptr, item._ptr)
def insertTopLevelItem(self, index: int, item: "QTreeWidgetItem"):
vqt6_qtreewidget_insert_top_level_item(self._ptr, index, item._ptr)
def topLevelItemCount(self) -> int:
return vqt6_qtreewidget_top_level_item_count(self._ptr)
def topLevelItem(self, index: int) -> "QTreeWidgetItem":
it = QTreeWidgetItem()
it._ptr = vqt6_qtreewidget_top_level_item(self._ptr, index)
return it
def currentItem(self) -> "QTreeWidgetItem":
it = QTreeWidgetItem()
it._ptr = vqt6_qtreewidget_current_item(self._ptr)
return it
def expandAll(self):
vqt6_qtreewidget_expand_all(self._ptr)
def collapseAll(self):
vqt6_qtreewidget_collapse_all(self._ptr)
def setHeaderHidden(self, hidden: int):
vqt6_qtreewidget_set_header_hidden(self._ptr, hidden)
def setColumnCount(self, count: int):
vqt6_qtreewidget_set_column_count(self._ptr, count)
def setItemExpanded(self, item: "QTreeWidgetItem", expanded: int):
vqt6_qtreewidget_set_item_expanded(self._ptr, item._ptr, expanded)
def itemChanged(self, cb: bytes, data: bytes = 0):
vqt6_qtreewidget_connect_item_changed(self._ptr, cb, data)
def itemClicked(self, cb: bytes, data: bytes = 0):
vqt6_qtreewidget_connect_item_clicked(self._ptr, cb, data)
def show(self):
_w_show(self._ptr)
def hide(self):
_w_hide(self._ptr)
def setGeometry(self, x: int, y: int, w: int, h: int):
_w_set_geometry(self._ptr, x, y, w, h)
def resize(self, w: int, h: int):
_w_resize(self._ptr, w, h)
def move(self, x: int, y: int):
_w_move(self._ptr, x, y)
def setEnabled(self, enabled: int):
_w_set_enabled(self._ptr, enabled)
@t.NoVTable
class QTabWidget:
"""QTabWidget 包装"""
@@ -1603,6 +1779,7 @@ __all__ = [
"QLineEdit", "QCheckBox", "QRadioButton",
"QComboBox", "QSlider", "QSpinBox", "QProgressBar",
"QTextEdit", "QPlainTextEdit", "QListWidget",
"QTreeWidget", "QTreeWidgetItem",
"QTabWidget", "QStackedWidget",
"QHBoxLayout", "QVBoxLayout", "QGridLayout",
"QMessageBox", "QFileDialog", "QTimer",
@@ -1611,6 +1788,7 @@ __all__ = [
# 类型
"QtObjectPtr", "QtStringPtr", "QtByteArrayPtr", "QtWidgetPtr", "QtAppPtr",
"QtLabelPtr", "QtPushButtonPtr",
"QtTreeWidgetPtr", "QtTreeWidgetItemPtr",
"QtColorPtr", "QtFontPtr", "QtPixmapPtr", "QtImagePtr", "QtPainterPtr",
"QtTcpSocketPtr", "QtHostAddressPtr", "QtNetworkRequestPtr", "QtNetworkReplyPtr",
# 常量
+165
View File
@@ -28,6 +28,7 @@
#include <QFormLayout>
#include <QStackedWidget>
#include <QTabWidget>
#include <QTreeWidget>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
@@ -42,6 +43,7 @@
#include <QStringList>
#include <QFont>
#include <QColor>
#include <QVariant>
#include <QPixmap>
#include <QIcon>
#include <QCursor>
@@ -768,6 +770,11 @@ extern "C" VQT6_API void vqt6_qplaintextedit_append_utf8(void* pte, const char*
static_cast<QPlainTextEdit*>(pte)->appendPlainText(QString::fromUtf8(utf8));
}
extern "C" VQT6_API void vqt6_qplaintextedit_set_plain_text_utf8(void* pte, const char* utf8) {
if (pte == nullptr || utf8 == nullptr) return;
static_cast<QPlainTextEdit*>(pte)->setPlainText(QString::fromUtf8(utf8));
}
extern "C" VQT6_API void vqt6_qwidget_set_stylesheet_utf8(void* widget, const char* utf8) {
if (widget == nullptr || utf8 == nullptr) return;
static_cast<QWidget*>(widget)->setStyleSheet(QString::fromUtf8(utf8));
@@ -1766,6 +1773,144 @@ extern "C" VQT6_API void* vqt6_qfiledialog_get_open_file_names(void* parent, voi
));
}
// ============================================================
// QTreeWidget / QTreeWidgetItem
// ============================================================
extern "C" VQT6_API void* vqt6_qtreewidget_create(void) {
return new QTreeWidget();
}
extern "C" VQT6_API void* vqt6_qtreewidget_create_with_parent(void* parent) {
if (parent == nullptr) return nullptr;
return new QTreeWidget(static_cast<QWidget*>(parent));
}
extern "C" VQT6_API void vqt6_qtreewidget_add_top_level_item(void* tw, void* item) {
if (tw == nullptr || item == nullptr) return;
static_cast<QTreeWidget*>(tw)->addTopLevelItem(static_cast<QTreeWidgetItem*>(item));
}
extern "C" VQT6_API void vqt6_qtreewidget_insert_top_level_item(void* tw, int index, void* item) {
if (tw == nullptr || item == nullptr) return;
static_cast<QTreeWidget*>(tw)->insertTopLevelItem(index, static_cast<QTreeWidgetItem*>(item));
}
extern "C" VQT6_API int vqt6_qtreewidget_top_level_item_count(void* tw) {
if (tw == nullptr) return 0;
return static_cast<QTreeWidget*>(tw)->topLevelItemCount();
}
extern "C" VQT6_API void* vqt6_qtreewidget_top_level_item(void* tw, int index) {
if (tw == nullptr) return nullptr;
return static_cast<QTreeWidget*>(tw)->topLevelItem(index);
}
extern "C" VQT6_API void* vqt6_qtreewidget_current_item(void* tw) {
if (tw == nullptr) return nullptr;
return static_cast<QTreeWidget*>(tw)->currentItem();
}
extern "C" VQT6_API void vqt6_qtreewidget_expand_all(void* tw) {
if (tw == nullptr) return;
static_cast<QTreeWidget*>(tw)->expandAll();
}
extern "C" VQT6_API void vqt6_qtreewidget_collapse_all(void* tw) {
if (tw == nullptr) return;
static_cast<QTreeWidget*>(tw)->collapseAll();
}
extern "C" VQT6_API void vqt6_qtreewidget_set_header_hidden(void* tw, int hidden) {
if (tw == nullptr) return;
static_cast<QTreeWidget*>(tw)->setHeaderHidden(hidden != 0);
}
extern "C" VQT6_API void vqt6_qtreewidget_set_column_count(void* tw, int count) {
if (tw == nullptr) return;
static_cast<QTreeWidget*>(tw)->setColumnCount(count);
}
extern "C" VQT6_API void vqt6_qtreewidget_set_item_expanded(void* tw, void* item, int expanded) {
if (item == nullptr) return;
(void)tw;
static_cast<QTreeWidgetItem*>(item)->setExpanded(expanded != 0);
}
extern "C" VQT6_API void* vqt6_qtreewidgetitem_create(void* text) {
QTreeWidgetItem* it = new QTreeWidgetItem();
if (text != nullptr) it->setText(0, *static_cast<QString*>(text));
return it;
}
extern "C" VQT6_API void vqt6_qtreewidgetitem_add_child(void* item, void* child) {
if (item == nullptr || child == nullptr) return;
static_cast<QTreeWidgetItem*>(item)->addChild(static_cast<QTreeWidgetItem*>(child));
}
extern "C" VQT6_API int vqt6_qtreewidgetitem_child_count(void* item) {
if (item == nullptr) return 0;
return static_cast<QTreeWidgetItem*>(item)->childCount();
}
extern "C" VQT6_API void* vqt6_qtreewidgetitem_child(void* item, int index) {
if (item == nullptr) return nullptr;
return static_cast<QTreeWidgetItem*>(item)->child(index);
}
extern "C" VQT6_API void vqt6_qtreewidgetitem_set_text(void* item, void* text) {
if (item == nullptr || text == nullptr) return;
static_cast<QTreeWidgetItem*>(item)->setText(0, *static_cast<QString*>(text));
}
extern "C" VQT6_API void* vqt6_qtreewidgetitem_text(void* item) {
if (item == nullptr) return nullptr;
return new QString(static_cast<QTreeWidgetItem*>(item)->text(0));
}
extern "C" VQT6_API void vqt6_qtreewidgetitem_set_checkable(void* item, int checkable) {
if (item == nullptr) return;
QTreeWidgetItem* it = static_cast<QTreeWidgetItem*>(item);
Qt::ItemFlags f = it->flags();
if (checkable != 0) f |= Qt::ItemIsUserCheckable;
else f &= ~Qt::ItemIsUserCheckable;
it->setFlags(f);
}
extern "C" VQT6_API void vqt6_qtreewidgetitem_set_check_state(void* item, int state) {
if (item == nullptr) return;
Qt::CheckState cs = Qt::Unchecked;
if (state == 1) cs = Qt::PartiallyChecked;
else if (state == 2) cs = Qt::Checked;
static_cast<QTreeWidgetItem*>(item)->setCheckState(0, cs);
}
extern "C" VQT6_API int vqt6_qtreewidgetitem_check_state(void* item) {
if (item == nullptr) return 0;
return static_cast<int>(static_cast<QTreeWidgetItem*>(item)->checkState(0));
}
extern "C" VQT6_API void vqt6_qtreewidgetitem_set_expanded(void* item, int expanded) {
if (item == nullptr) return;
static_cast<QTreeWidgetItem*>(item)->setExpanded(expanded != 0);
}
extern "C" VQT6_API int vqt6_qtreewidgetitem_is_expanded(void* item) {
if (item == nullptr) return 0;
return static_cast<QTreeWidgetItem*>(item)->isExpanded() ? 1 : 0;
}
extern "C" VQT6_API void vqt6_qtreewidgetitem_set_data_int(void* item, int value) {
if (item == nullptr) return;
static_cast<QTreeWidgetItem*>(item)->setData(0, Qt::UserRole, QVariant(value));
}
extern "C" VQT6_API int vqt6_qtreewidgetitem_data_int(void* item) {
if (item == nullptr) return 0;
bool ok = false;
int v = static_cast<QTreeWidgetItem*>(item)->data(0, Qt::UserRole).toInt(&ok);
return ok ? v : 0;
}
// ============================================================
// 信号连接(Qt 信号 → Viper 回调 vqt6_slot_callback_t)
// 模式:vqt6_signal_register 分配 slot_id → Qt lambda 连接信号 →
@@ -1900,3 +2045,23 @@ extern "C" VQT6_API void vqt6_qaction_connect_triggered(void* action, vqt6_slot_
vqt6_trigger_slot(slot_id);
});
}
extern "C" VQT6_API void vqt6_qtreewidget_connect_item_changed(void* tw, vqt6_slot_callback_t cb, void* user_data) {
if (tw == nullptr) return;
int slot_id = vqt6_signal_register(cb, user_data);
if (slot_id < 0) return;
QObject::connect(static_cast<QTreeWidget*>(tw), &QTreeWidget::itemChanged,
static_cast<QTreeWidget*>(tw), [slot_id](QTreeWidgetItem*, int) {
vqt6_trigger_slot(slot_id);
});
}
extern "C" VQT6_API void vqt6_qtreewidget_connect_item_clicked(void* tw, vqt6_slot_callback_t cb, void* user_data) {
if (tw == nullptr) return;
int slot_id = vqt6_signal_register(cb, user_data);
if (slot_id < 0) return;
QObject::connect(static_cast<QTreeWidget*>(tw), &QTreeWidget::itemClicked,
static_cast<QTreeWidget*>(tw), [slot_id](QTreeWidgetItem*, int) {
vqt6_trigger_slot(slot_id);
});
}
+31
View File
@@ -52,6 +52,7 @@ VQT6_API void* vqt6_qwidget_text(void* widget);
// UTF-8 便捷版:直接传 C 字符串(Viper str),内部转 QString,避免 Viper 端手动创建/释放 QString
VQT6_API void vqt6_qlabel_set_text_utf8(void* label, const char* utf8);
VQT6_API void vqt6_qplaintextedit_append_utf8(void* pte, const char* utf8);
VQT6_API void vqt6_qplaintextedit_set_plain_text_utf8(void* pte, const char* utf8);
// Qt 样式表(QSS):直接传 C 字符串,深色主题等外观定制
VQT6_API void vqt6_qwidget_set_stylesheet_utf8(void* widget, const char* utf8);
VQT6_API void vqt6_qwidget_set_enabled(void* widget, int enabled);
@@ -244,6 +245,36 @@ VQT6_API void* vqt6_qlistwidget_current_item_text(void* lw);
VQT6_API void* vqt6_qlistwidget_item_text(void* lw, int row);
VQT6_API void vqt6_qlistwidget_set_item_text(void* lw, int row, void* text);
// ============================================================
// QTreeWidget / QTreeWidgetItem
// ============================================================
VQT6_API void* vqt6_qtreewidget_create(void);
VQT6_API void* vqt6_qtreewidget_create_with_parent(void* parent);
VQT6_API void vqt6_qtreewidget_add_top_level_item(void* tw, void* item);
VQT6_API void vqt6_qtreewidget_insert_top_level_item(void* tw, int index, void* item);
VQT6_API int vqt6_qtreewidget_top_level_item_count(void* tw);
VQT6_API void* vqt6_qtreewidget_top_level_item(void* tw, int index);
VQT6_API void* vqt6_qtreewidget_current_item(void* tw);
VQT6_API void vqt6_qtreewidget_expand_all(void* tw);
VQT6_API void vqt6_qtreewidget_collapse_all(void* tw);
VQT6_API void vqt6_qtreewidget_set_header_hidden(void* tw, int hidden);
VQT6_API void vqt6_qtreewidget_set_column_count(void* tw, int count);
VQT6_API void vqt6_qtreewidget_set_item_expanded(void* tw, void* item, int expanded);
VQT6_API void* vqt6_qtreewidgetitem_create(void* text);
VQT6_API void vqt6_qtreewidgetitem_add_child(void* item, void* child);
VQT6_API int vqt6_qtreewidgetitem_child_count(void* item);
VQT6_API void* vqt6_qtreewidgetitem_child(void* item, int index);
VQT6_API void vqt6_qtreewidgetitem_set_text(void* item, void* text);
VQT6_API void* vqt6_qtreewidgetitem_text(void* item);
VQT6_API void vqt6_qtreewidgetitem_set_checkable(void* item, int checkable);
VQT6_API void vqt6_qtreewidgetitem_set_check_state(void* item, int state);
VQT6_API int vqt6_qtreewidgetitem_check_state(void* item);
VQT6_API void vqt6_qtreewidgetitem_set_expanded(void* item, int expanded);
VQT6_API int vqt6_qtreewidgetitem_is_expanded(void* item);
VQT6_API void vqt6_qtreewidgetitem_set_data_int(void* item, int value);
VQT6_API int vqt6_qtreewidgetitem_data_int(void* item);
// ============================================================
// QProgressBar
// ============================================================
+34
View File
@@ -209,6 +209,7 @@ def vqt6_qplaintextedit_set_plain_text(pte: QtPlainTextEditPtr, text: QtStringPt
def vqt6_qplaintextedit_append(pte: QtPlainTextEditPtr, text: QtStringPtr) -> t.State: pass
# UTF-8 便捷版:直接传 Viper str,避免手动创建/释放 QString
def vqt6_qplaintextedit_append_utf8(pte: QtPlainTextEditPtr, text: t.CChar | t.CPtr) -> t.State: pass
def vqt6_qplaintextedit_set_plain_text_utf8(pte: QtPlainTextEditPtr, text: t.CChar | t.CPtr) -> t.State: pass
def vqt6_qplaintextedit_clear(pte: QtPlainTextEditPtr) -> t.State: pass
def vqt6_qplaintextedit_set_read_only(pte: QtPlainTextEditPtr, ro: t.CInt) -> t.State: pass
def vqt6_qplaintextedit_line_count(pte: QtPlainTextEditPtr) -> t.CInt | t.State: pass
@@ -274,6 +275,37 @@ def vqt6_qlistwidget_item_text(lw: QtListWidgetPtr, row: t.CInt) -> QtStringPtr
def vqt6_qlistwidget_set_item_text(lw: QtListWidgetPtr, row: t.CInt, text: QtStringPtr) -> t.State: pass
# ============================================================
# QTreeWidget / QTreeWidgetItem — 树状控件
# ============================================================
def vqt6_qtreewidget_create() -> QtTreeWidgetPtr | t.State: pass
def vqt6_qtreewidget_create_with_parent(parent: QtWidgetPtr) -> QtTreeWidgetPtr | t.State: pass
def vqt6_qtreewidget_add_top_level_item(tw: QtTreeWidgetPtr, item: QtTreeWidgetItemPtr) -> t.State: pass
def vqt6_qtreewidget_insert_top_level_item(tw: QtTreeWidgetPtr, index: t.CInt, item: QtTreeWidgetItemPtr) -> t.State: pass
def vqt6_qtreewidget_top_level_item_count(tw: QtTreeWidgetPtr) -> t.CInt | t.State: pass
def vqt6_qtreewidget_top_level_item(tw: QtTreeWidgetPtr, index: t.CInt) -> QtTreeWidgetItemPtr | t.State: pass
def vqt6_qtreewidget_current_item(tw: QtTreeWidgetPtr) -> QtTreeWidgetItemPtr | t.State: pass
def vqt6_qtreewidget_expand_all(tw: QtTreeWidgetPtr) -> t.State: pass
def vqt6_qtreewidget_collapse_all(tw: QtTreeWidgetPtr) -> t.State: pass
def vqt6_qtreewidget_set_header_hidden(tw: QtTreeWidgetPtr, hidden: t.CInt) -> t.State: pass
def vqt6_qtreewidget_set_column_count(tw: QtTreeWidgetPtr, count: t.CInt) -> t.State: pass
def vqt6_qtreewidget_set_item_expanded(tw: QtTreeWidgetPtr, item: QtTreeWidgetItemPtr, expanded: t.CInt) -> t.State: pass
def vqt6_qtreewidgetitem_create(text: QtStringPtr) -> QtTreeWidgetItemPtr | t.State: pass
def vqt6_qtreewidgetitem_add_child(item: QtTreeWidgetItemPtr, child: QtTreeWidgetItemPtr) -> t.State: pass
def vqt6_qtreewidgetitem_child_count(item: QtTreeWidgetItemPtr) -> t.CInt | t.State: pass
def vqt6_qtreewidgetitem_child(item: QtTreeWidgetItemPtr, index: t.CInt) -> QtTreeWidgetItemPtr | t.State: pass
def vqt6_qtreewidgetitem_set_text(item: QtTreeWidgetItemPtr, text: QtStringPtr) -> t.State: pass
def vqt6_qtreewidgetitem_text(item: QtTreeWidgetItemPtr) -> QtStringPtr | t.State: pass
def vqt6_qtreewidgetitem_set_checkable(item: QtTreeWidgetItemPtr, checkable: t.CInt) -> t.State: pass
def vqt6_qtreewidgetitem_set_check_state(item: QtTreeWidgetItemPtr, state: t.CInt) -> t.State: pass
def vqt6_qtreewidgetitem_check_state(item: QtTreeWidgetItemPtr) -> t.CInt | t.State: pass
def vqt6_qtreewidgetitem_set_expanded(item: QtTreeWidgetItemPtr, expanded: t.CInt) -> t.State: pass
def vqt6_qtreewidgetitem_is_expanded(item: QtTreeWidgetItemPtr) -> t.CInt | t.State: pass
def vqt6_qtreewidgetitem_set_data_int(item: QtTreeWidgetItemPtr, value: t.CInt) -> t.State: pass
def vqt6_qtreewidgetitem_data_int(item: QtTreeWidgetItemPtr) -> t.CInt | t.State: pass
# ============================================================
# QProgressBar — 进度条
# ============================================================
@@ -501,3 +533,5 @@ def vqt6_qprogressbar_connect_value_changed(pb: QtProgressBarPtr, cb: bytes, use
def vqt6_qlistwidget_connect_current_row_changed(lw: QtListWidgetPtr, cb: bytes, user_data: bytes) -> t.State: pass
def vqt6_qtabwidget_connect_current_changed(tw: QtTabWidgetPtr, cb: bytes, user_data: bytes) -> t.State: pass
def vqt6_qaction_connect_triggered(action: QtActionPtr, cb: bytes, user_data: bytes) -> t.State: pass
def vqt6_qtreewidget_connect_item_changed(tw: QtTreeWidgetPtr, cb: bytes, user_data: bytes) -> t.State: pass
def vqt6_qtreewidget_connect_item_clicked(tw: QtTreeWidgetPtr, cb: bytes, user_data: bytes) -> t.State: pass
+2
View File
@@ -58,6 +58,8 @@ QtRadioButtonPtr: t.CTypedef = t.CVoid | t.CPtr # QRadioButton*
QtComboBoxPtr: t.CTypedef = t.CVoid | t.CPtr # QComboBox*
QtListWidgetPtr: t.CTypedef = t.CVoid | t.CPtr # QListWidget*
QtListWidgetItemPtr: t.CTypedef = t.CVoid | t.CPtr # QListWidgetItem*
QtTreeWidgetPtr: t.CTypedef = t.CVoid | t.CPtr # QTreeWidget*
QtTreeWidgetItemPtr: t.CTypedef = t.CVoid | t.CPtr # QTreeWidgetItem*
QtProgressBarPtr: t.CTypedef = t.CVoid | t.CPtr # QProgressBar*
QtSliderPtr: t.CTypedef = t.CVoid | t.CPtr # QSlider*
QtSpinBoxPtr: t.CTypedef = t.CVoid | t.CPtr # QSpinBox*