Qt开发:Qt Widgets模块——QComboBox类

QComboBox文字居中的几种实现方式 不知道你有没有遇到过这样的需求,将一个QComboBox的文字居中显示。我最近遇到了这样的需要,主要是要和其他的控件显示进行匹配,这也就要求我们必须将下拉列表的文字居中显示。这种需求可能实现的方式会有好多种,但我一直坚信,能用原生的就用原生的,或者在原生的控件之上进行一些特例化的改动,让其满足我们的需求是最简单的方式,并且不会过多的影响样式表设置。所以这儿我还是选择了QComboBox,而我们要做的事情就是怎样将他的文字居中显示。... 阅读详情

QComboBox小部件是一个组合的按钮和弹出列表。

头文件:#include <QColumnView>

qmake:QT += widgets

继承:QWidget

被继承:QFontComboBox

QComboBox提供了一种向用户呈现选项列表的方式,其占用最小量的屏幕空间。

组合框是一个显示当前项目的选择小部件,可以弹出可选项目列表。 组合框可以是可编辑的,允许用户修改列表中的每个项目。

组合框可以包含像素图以及字符串; insertItem()和setItemText()函数适当重载。 对于可编辑组合框,提供了函数clearEditText(),以清除显示的字符串而不更改组合框的内容。

如果组合框的当前项目发生更改,currentIndexChanged()和activate()会发出两个信号。 无论以编程方式或通过用户交互完成更改,currentIndexChanged()总是被发射,而只有当更改由用户交互导致时才激活()。 突出显示的()信号在用户突出显示组合框弹出列表中的项目时发出。 所有三个信号都有两个版本,一个带有QString参数,另一个带有int参数。 如果用户选择或突出显示一个像素图,则只会发出整型信号。 每当可编辑组合框的文本发生改变时,editTextChanged()信号就会发出。

当用户在可编辑的组合框中输入一个新的字符串时,该小部件可能会插入它,也可能不会插入它,并且它可以将它插入到多个位置。 默认策略是InsertAtBottom,但您可以使用setInsertPolicy()更改它。

可以使用QValidator将输入约束为可编辑的组合框; 请参阅setValidator()。 默认情况下,接受任何输入。

例如,可以使用插入函数insertItem()和insertItems()来填充组合框。 可以使用setItemText()更改项目。 一个项目可以使用removeItem()来移除,所有项目都可以使用clear()来移除。 当前项目的文本由currentText()返回,编号项目的文本使用text()返回。 当前项目可以使用setCurrentIndex()来设置。 count()返回组合框中的项目数; 可以用setMaxCount()设置项目的最大数量。 您可以允许使用setEditable()进行编辑。 对于可编辑组合框,您可以使用setCompleter()设置自动完成,并且用户是否可以添加重复项由setDuplicatesEnabled()进行设置。

QComboBox为其弹出列表使用模型/视图框架并存储其项目。 默认情况下,QStandardItemModel存储项目,QListView子类显示弹出列表。 您可以直接访问模型和视图(使用model()和view()),但QComboBox还提供了设置和获取项目数据的函数(例如,setItemData()和itemText())。 您还可以设置新的模型和视图(使用setModel()和setView())。 对于组合框标签中的文本和图标,将使用具有Qt :: DisplayRole和Qt :: DecorationRole的模型中的数据。 请注意,您不能通过使用setSelectionMode()来更改view()的SelectionMode。




一、成员类型

1、enum QComboBox::InsertPolicy

此枚举指定用户输入新字符串时QComboBox应执行的操作。

内容值描述
QComboBox::NoInsert0该字符串不会被插入到组合框中。
QComboBox::InsertAtTop1该字符串将作为组合框中的第一项插入。
QComboBox::InsertAtCurrent2当前项目将被字符串替换。
QComboBox::InsertAtBottom3该字符串将插入组合框中最后一项之后。
QComboBox::InsertAfterCurrent4该字符串插入组合框中的当前项目之后。
QComboBox::InsertBeforeCurrent5该字符串被插入到组合框中的当前项目之前。
QComboBox::InsertAlphabetically6该字符串按组合框中的字母顺序插入。

2、enum QComboBox::SizeAdjustPolicy

此枚举指定添加新内容或更改内容时QComboBox的大小提示应如何调整。

内容值描述
QComboBox::AdjustToContents0组合框将始终根据内容进行调整
QComboBox::AdjustToContentsOnFirstShow1第一次显示时,组合框将调整为其内容。
QComboBox::AdjustToMinimumContentsLength2改为使用AdjustToContents或AdjustToContentsOnFirstShow。
QComboBox::AdjustToMinimumContentsLengthWithIcon3组合框将调整为最小内容长度加上图标的空间。 出于性能原因,在大型模型上使用此策略。


二、属性

1、count : const int

该属性保存组合框中的项目数量。

默认情况下,对于空组合框,此属性的值为0。

访问函数;

int count() const


2、currentData : const QVariant

该属性保存当前项目的数据。

默认情况下,对于没有设置当前项目的空组合框或组合框,此属性包含无效的QVariant。

这个属性是在Qt 5.2中引入的。

访问函数;

QVariant currentData(int role = Qt::UserRole) const

3、currentIndex : int

该属性包含组合框中当前项目的索引。

插入或删除项目时,当前索引可能会更改。

默认情况下,对于未设置当前项目的空组合框或组合框,此属性的值为-1。

访问函数;

int currentIndex() const
void setCurrentIndex(int index)

通知信号;

void currentIndexChanged(int index)
void currentIndexChanged(const QString &text)


4、currentText : QString

该属性保存当前文本。

如果组合框是可编辑的,则当前文本是线条编辑显示的值。 否则,如果组合框为空或未设置当前项目,则为当前项目的值或空字符串。

如果组合框是可编辑的,则setter setCurrentText()只需调用setEditText()。 否则,如果列表中有匹配的文本,则将currentIndex设置为相应的索引。

访问函数;

QString currentText() const
void setCurrentText(const QString &text)

通知信号;

void currentTextChanged(const QString &text)


5、duplicatesEnabled : bool

此属性保持用户是否可以将重复项目输入到组合框中。

请注意,总是可以以编程方式将重复项插入组合框。

默认情况下,此属性为false(不允许重复)。

访问函数;

bool duplicatesEnabled() const
void setDuplicatesEnabled(bool enable)


6、editable : bool

bool hasFrame() const
void setFrame(bool)

该属性保持组合框是否可由用户编辑。

默认情况下,此属性为false。 编辑的效果取决于插入策略。

访问函数;

bool isEditable() const
void setEditable(bool editable)


7、frame : bool

该属性可以确定组合框是否使用框架绘制自己。

如果启用(默认),组合框会在框架内自行绘制,否则组合框会自动绘制而没有任何框架。

访问函数;

bool hasFrame() const
void setFrame(bool)


8、iconSize : QSize

该属性保存组合框中显示的图标的大小。

除非明确设置,否则返回当前样式的默认值。 这个尺寸是图标可以具有的最大尺寸; 较小尺寸的图标不会放大。

访问函数;

QSize iconSize() const
void setIconSize(const QSize &size)

9、insertPolicy : InsertPolicy

此属性包含用于确定用户插入的项目应该出现在组合框中的策略。

默认值是InsertAtBottom,表示新项目将出现在项目列表的底部。

访问函数;

InsertPolicy insertPolicy() const
void setInsertPolicy(InsertPolicy policy)


10、maxCount : int

该属性拥有组合框中允许的最大项目数。

注意:如果您将最大数量设置为小于组合框中当前数量的项目,则额外项目将被截断。 如果您在组合框上设置了外部模型,这也适用。

默认情况下,此属性的值来自可用的最高有符号整数(通常为2147483647)。

访问函数;

int maxCount() const
void setMaxCount(int max)


11、maxVisibleItems : int

此属性在组合框的屏幕上保持允许的最大尺寸,以项目计量。

默认情况下,此属性的值为10。

注意:对于QStyle :: SH_ComboBox_Popup(例如Mac风格或Gtk +风格)返回true的样式中的不可编辑组合框,该属性将被忽略。

访问函数;

int maxVisibleItems() const
void setMaxVisibleItems(int maxItems)


12、minimumContentsLength : int

该属性保留了适合组合框的最少字符数。

默认值是0。

如果此属性设置为正值,则minimumSizeHint()和sizeHint()会将其考虑在内。

访问函数;

int minimumContentsLength() const
void setMinimumContentsLength(int characters)

13、modelColumn : int

该属性拥有可见模型中的列。

如果在填充组合框之前设置,则弹出视图不会受到影响,并会显示第一列(使用此属性的默认值)。

默认情况下,此属性的值为0。

访问函数;

int modelColumn() const
void setModelColumn(int visibleColumn)

14、sizeAdjustPolicy : SizeAdjustPolicy

此属性包含描述内容更改时组合框大小如何更改的策略。

默认值是AdjustToContentsOnFirstShow。

访问函数;

SizeAdjustPolicy sizeAdjustPolicy() const
void setSizeAdjustPolicy(SizeAdjustPolicy policy



三、成员函数

1、QComboBox::QComboBox(QWidget *parent = Q_NULLPTR)

使用默认模型QStandardItemModel构造与给定父级的组合框。


2、QComboBox::~QComboBox()

摧毁组合框。


3、[signal] void QComboBox::activated(int index)

该信号在用户选择组合框中的项目时发送。 该项目的索引已通过。 请注意,即使选择没有改变,也会发送此信号。 如果您需要知道选择实际更改的时间,请使用signal currentIndexChanged()。

注意:该类中的信号被激活。 要使用函数指针语法连接到此函数,您必须在静态转换中指定信号类型,如下例所示:

  connect(comboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::activated),
      [=](int index){ /* ... */ });

4、[signal] void QComboBox::activated(const QString &text)

该信号在用户选择组合框中的项目时发送。 该项目的文本已通过。 请注意,即使选择没有改变,也会发送此信号。 如果您需要知道选择实际更改的时间,请使用signal currentIndexChanged()。

注意:该类中的信号被激活。 要使用函数指针语法连接到此函数,您必须在静态转换中指定信号类型,如下例所示:

connect(comboBox, static_cast<void(QComboBox::*)(const QString &)>(&QComboBox::activated),
      [=](const QString &text){ /* ... */ });


5、void QComboBox::addItem(const QString &text, const QVariant &userData = QVariant())

使用给定的文本向组合框添加一个项目,并包含指定的userData(存储在Qt :: UserRole中)。 该项目被追加到现有项目的列表中。


6、void QComboBox::addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant())

使用给定的图标和文本向组合框添加一个项目,并且包含指定的userData(存储在Qt :: UserRole中)。 该项目被追加到现有项目的列表中。


7、void QComboBox::addItems(const QStringList &texts)

将给定文本中的每个字符串添加到组合框中。 每个项目依次附加到现有项目列表中。


8、[virtual protected] void QComboBox::changeEvent(QEvent *e)

从QWidget :: changeEvent()重新实现。


9、[slot] void QComboBox::clear()

清除组合框,删除所有项目。

注意:如果您在组合框上设置了外部模型,调用此功能时该模型仍将被清除。


10、[slot] void QComboBox::clearEditText()

清除组合框中用于编辑的行编辑内容。


11、QCompleter *QComboBox::completer() const

返回用于自动完成组合框文本输入的完成器。

这个函数是在Qt 4.2中引入的。


12、[virtual protected] void QComboBox::contextMenuEvent(QContextMenuEvent *e)

从QWidget :: contextMenuEvent()重新实现。


13、[signal] void QComboBox::currentIndexChanged(int index)

只要组合框中的currentIndex通过用户交互或以编程方式更改,就会发送此信号。 如果组合框变空或currentIndex被重置,则传递项目的索引或-1。

注意:此类中的信号currentIndexChanged被重载。 要使用函数指针语法连接到此函数,您必须在静态转换中指定信号类型,如下例所示:

 connect(comboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
      [=](int index){ /* ... */ });

这个函数是在Qt 4.1中引入的。


14、[signal] void QComboBox::currentIndexChanged(const QString &text)

只要组合框中的currentIndex通过用户交互或以编程方式更改,就会发送此信号。 该项目的文本已通过。

注意:此类中的信号currentIndexChanged被重载。 要使用函数指针语法连接到此函数,您必须在静态转换中指定信号类型,如下例所示:

connect(comboBox, static_cast<void(QComboBox::*)(const QString &)>(&QComboBox::currentIndexChanged),
      [=](const QString &text){ /* ... */ });

这个函数是在Qt 4.1中引入的。


15、[signal] void QComboBox::currentTextChanged(const QString &text)

每当currentText改变时都会发送此信号。 新值作为文本传递。

这个函数是在Qt 5.0中引入的。


16、[signal] void QComboBox::editTextChanged(const QString &text)

当组合框的行编辑小部件中的文本发生改变时,将发出此信号。 新文本由文本指定。


17、[virtual] bool QComboBox::event(QEvent *event)

从QObject :: event()重新实现。


18、int QComboBox::findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = static_cast<Qt::MatchFlags> ( Qt::MatchExactly | Qt::MatchCaseSensitive )) const

返回包含给定角色给定数据的项目的索引; 否则返回-1。

标志指定如何搜索组合框中的项目。


19、int QComboBox::findText(const QString &text, Qt::MatchFlags flags = static_cast<Qt::MatchFlags> ( Qt::MatchExactly | Qt::MatchCaseSensitive )) const

返回包含给定文本的项目的索引; 否则返回-1。

标志指定如何搜索组合框中的项目。


20、[virtual protected] void QComboBox::focusInEvent(QFocusEvent *e)

从QWidget :: focusInEvent()重新实现。


21、[virtual protected] void QComboBox::focusOutEvent(QFocusEvent *e)

从QWidget :: focusOutEvent()重新实现。


22、[virtual protected] void QComboBox::hideEvent(QHideEvent *e)

从QWidget :: hideEvent()重新实现。


23、[virtual] void QComboBox::hidePopup()

隐藏组合框中的项目列表(如果当前可见)并重置内部状态,以便如果自定义弹出窗口显示在重新实现的showPopup()中,则还需要重新实现hidePopup()函数以隐藏您的 自定义弹出窗口并调用基类实现以在隐藏自定义弹出窗口小部件时重置内部状态。


24、[signal] void QComboBox::highlighted(int index)

该信号在用户突出显示组合框弹出列表中的项目时发送。 该项目的索引已通过。

注意:此类中突出显示的信号超载。 要使用函数指针语法连接到此函数,您必须在静态转换中指定信号类型,如下例所示:

 connect(comboBox, static_cast<void(QComboBox::*)(int)>(&QComboBox::highlighted),
      [=](int index){ /* ... */ });


25、[signal] void QComboBox::highlighted(const QString &text)

该信号在用户突出显示组合框弹出列表中的项目时发送。 该项目的文本已通过。

注意:此类中突出显示的信号超载。 要使用函数指针语法连接到此函数,您必须在静态转换中指定信号类型,如下例所示:

  connect(comboBox, static_cast<void(QComboBox::*)(const QString &)>(&QComboBox::highlighted),
      [=](const QString &text){ /* ... */ });


26、[protected] void QComboBox::initStyleOption(QStyleOptionComboBox *option) const

使用此QComboBox中的值初始化选项。 这个方法在需要QStyleOptionComboBox的子类中很有用,但不想自己填写所有的信息。


27、[virtual protected] void QComboBox::inputMethodEvent(QInputMethodEvent *e)

从QWidget :: inputMethodEvent()重新实现。


28、[virtual] QVariant QComboBox::inputMethodQuery(Qt::InputMethodQuery query) const

从QWidget :: inputMethodQuery()重新实现。


29、void QComboBox::insertItem(int index, const QString &text, const QVariant &userData = QVariant())

将文本和userData(存储在Qt :: UserRole中)插入给定索引处的组合框中。

如果索引等于或高于项目总数,则将新项目附加到现有项目的列表中。 如果索引为零或为负数,则新项目将预先添加到现有项目的列表中。


30、void QComboBox::insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData = QVariant())

将图标,文本和userData(存储在Qt :: UserRole中)插入给定索引处的组合框中。

如果索引等于或高于项目总数,则将新项目附加到现有项目的列表中。 如果索引为零或为负数,则新项目将预先添加到现有项目的列表中。


31、void QComboBox::insertItems(int index, const QStringList &list)

将列表中的字符串作为单独项插入组合框,从指定的索引处开始。

如果索引等于或高于项目总数,则将新项目附加到现有项目列表中。 如果索引为零或为负数,则新项目将预先添加到现有项目的列表中。


32、void QComboBox::insertSeparator(int index)

在给定索引处的组合框中插入一个分隔项。

如果索引等于或高于项目总数,则将新项目附加到现有项目的列表中。 如果索引为零或为负数,则新项目将预先添加到现有项目的列表中。

这个函数是在Qt 4.4中引入的。


33、QVariant QComboBox::itemData(int index, int role = Qt::UserRole) const

返回组合框中给定索引中给定角色的数据,如果此角色没有数据,则返回QVariant :: Invalid。


34、QAbstractItemDelegate *QComboBox::itemDelegate() const

返回弹出列表视图使用的项目委托。


35、QIcon QComboBox::itemIcon(int index) const

返回组合框中给定索引的图标。


36、QString QComboBox::itemText(int index) const

返回组合框中给定索引的文本。


37、[virtual protected] void QComboBox::keyPressEvent(QKeyEvent *e)

从QWidget :: keyPressEvent()重新实现。


38、[virtual protected] void QComboBox::keyReleaseEvent(QKeyEvent *e)

从QWidget :: keyReleaseEvent()重新实现。


39、QLineEdit *QComboBox::lineEdit() const

返回用于编辑组合框中项目的行编辑,如果没有行编辑,则返回0。

只有可编辑的组合框才有行编辑。


40、[virtual] QSize QComboBox::minimumSizeHint() const

从QWidget :: minimumSizeHint()重新实现。


41、QAbstractItemModel *QComboBox::model() const

返回组合框使用的模型。


42、[virtual protected] void QComboBox::mousePressEvent(QMouseEvent *e)

从QWidget :: mousePressEvent()重新实现。


43、[virtual protected] void QComboBox::mouseReleaseEvent(QMouseEvent *e)

从QWidget :: mouseReleaseEvent()重新实现。


44、[virtual protected] void QComboBox::paintEvent(QPaintEvent *e)

从QWidget :: paintEvent()重新实现。


45、void QComboBox::removeItem(int index)

索引被删除,这将更新当前索引。

如果索引超出范围,则此函数不执行任何操作。


46、[virtual protected] void QComboBox::resizeEvent(QResizeEvent *e)

从QWidget :: resizeEvent()重新实现。


47、QModelIndex QComboBox::rootModelIndex() const

返回组合框中项目的根模型项目索引。


48、void QComboBox::setCompleter(QCompleter *completer)

将完成者设置为使用,而不是当前完成者。 如果完成者为0,则自动完成功能被禁用。

默认情况下,对于可编辑组合框,会自动创建执行不区分大小写内联完成的QCompleter。

这个函数是在Qt 4.2中引入的。


49、[slot] void QComboBox::setEditText(const QString &text)

设置组合框文本编辑中的文本。


50、void QComboBox::setItemData(int index, const QVariant &value, int role = Qt::UserRole)

将组合框中给定索引上项目的数据角色设置为指定值。


51、void QComboBox::setItemDelegate(QAbstractItemDelegate *delegate)

为弹出列表视图设置项目代理。 组合框取得了委托的所有权。

警告:您不应该在组合框,小部件映射器或视图之间共享委托的同一个实例。 这样做会导致不正确或不直观的编辑行为,因为连接到给定委托的每个视图都可能会收到closeEditor()信号,并尝试访问,修改或关闭已关闭的编辑器。


52、void QComboBox::setItemIcon(int index, const QIcon &icon)

设置组合框中给定索引上项目的图标。


53、void QComboBox::setItemText(int index, const QString &text)

设置组合框中给定索引上项目的文本。


54、void QComboBox::setLineEdit(QLineEdit *edit)

将行编辑设置为使用而不是当前行编辑小部件。

组合框取得了线条编辑的所有权。


55、void QComboBox::setModel(QAbstractItemModel *model)

将模型设置为模型。 模型不能为0.如果要清除模型的内容,请调用clear()。


56、void QComboBox::setRootModelIndex(const QModelIndex &index)

为组合框中的项目设置根模型项目索引。


57、void QComboBox::setValidator(const QValidator *validator)

将验证程序设置为使用而不是当前验证程序。


58、void QComboBox::setView(QAbstractItemView *itemView)

将组合框弹出窗口中使用的视图设置为给定的itemView。 组合框取得了该视图的所有权。

注意:如果要使用便利视图(如QListWidget,QTableWidget或QTreeWidget),请确保在调用此函数之前使用便利小部件模型在组合框上调用setModel()。


59、[virtual protected] void QComboBox::showEvent(QShowEvent *e)

从QWidget :: showEvent()重新实现。


60、[virtual] void QComboBox::showPopup()

显示组合框中的项目列表。 如果列表为空,那么将显示no项目。

如果您重新实现此功能以显示自定义弹出窗口,请确保调用hidePopup()来重置内部状态。


61、[virtual] QSize QComboBox::sizeHint() const

显示组合框中的项目列表。 如果列表为空,那么将显示no项目。

如果您重新实现此功能以显示自定义弹出窗口,请确保调用hidePopup()来重置内部状态。


62、[virtual] QSize QComboBox::sizeHint() const

从QWidget :: sizeHint()重新实现。

此实现缓存大小提示以避免内容动态更改时调整大小。 要使缓存的值无效,请更改sizeAdjustPolicy。


63、const QValidator *QComboBox::validator() const

返回用于限制组合框文本输入的验证程序。


64、QAbstractItemView *QComboBox::view() const

返回用于组合框弹出窗口的列表视图。


65、[virtual protected] void QComboBox::wheelEvent(QWheelEvent *e)

从QWidget :: wheelEvent()重新实现。

QT之QComboBox详细介绍 QComboBox是Qt GUI库中的一个核心组件,它是一个复合型图形用户界面控件,常用于提供一种紧凑的方式来展示可选项列表。QComboBox通常表现为一个下拉列表框,包含一个文本标签区域和一个下拉箭头按钮,点击箭头时会显示出可供选择的项目列表。主要特点和功能包括:选项展示可以预先填充一系列固定的选项供用户选择。选项列表可以动态添加或移除。空间优化当不展开下拉列表时,仅显示当前选定项的文字,占用较少的屏幕空间。可编辑性。 阅读详情

相关推荐

QT QComboBox(4)使用

QComboBoxQComboBox Class类简介Public TypesPublic Functions QComboBox Class类简介 The QComboBox widget is a combined button and popup list. Header:#include qmake:QT += widgets Inherits:QWidget Inherited By:QFontComboBox List of all members, including inherited m

光顶术士的博客 578

Qt QComboBox详解

1.QComboBox QComboBox是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。 2.常用方法 添加带图标的项 QIcon icon; icon.addFile(":/images/icon.jpg"); ui->comboBox->addI....

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 4万+

技术文档的语言表达:简洁、准确与易懂的平衡艺术

技术文档的语言表达不仅要简洁、准确,还需要能够打破技术壁垒,使不同背景的读者都能理解。这是一项需要技巧和经验的工作,它要求技术作者既要具备扎实的专业知识,又要具备清晰的表达能力。通过不断打磨语言的简洁性、准确性和易懂性,我们能够创造出一份高质量的技术文档,让知识的传递不再受限于语言的障碍。

人心有反复,好在山水有重逢。 4677

【QT学习十二】QComboBox

QComboBox 是 Qt 中用于实现下拉框的强大工具,它提供了一种简便的方式来选择单个值或从一组选项中进行选择。QComboBox提供了一种以占用最小屏幕空间的方式向用户呈现选项列表的方法。ComboBox是一种选择小部件,显示当前项目,并可以弹出可选择项目的列表。QComboBox 是基于 Qt 框架的 QWidget 类的子类。它实现了一个下拉框,其中包含一个可供用户选择的列表。其原理主要基于使用了下拉列表(QListView)和按钮(QAbstractButton)。

从此不归路 1万+

Multisim 14.0元件库下载权威指南:官方与社区资源

详解Multisim元件库下载的官方途径与可靠社区资源,帮助用户快速获取Multisim 14.0所需元件模型,提升电路仿真效率。

weixin_32925455的博客 749

君正T31x metartc集成测试

metartc为国内杨大侠部分开源的一款用于嵌入式领域webrtc库,它与谷歌官方webrtc相比,编译到君正平台的可执行文件仅有5M即可实现webrtc的通信。1. 目前实现的是基于开源版v5.0-b0版本做的简单修改,官方的好几个版本都多少缺点东西,我这里给整理了一下。目前是局域网连接的webrtc,后续尝试走stun和turn试一下NAT穿越的效果。

fsmpeg的博客 3159

[Qt 教程之Widgets模块] —— QComboBox 组合框

/ 将自定义的数据模型添加到组合框 QModelIndex rootModelIndex() const;// 设置项目的根模型项目索引 int modelColumn() const;// 设置模型可见列。如果在填充组合框之前设置,则视图不受影响,将显示第一列(使用此属性的默认值0)。Qt系列教程总目录。

淋曦的进击手记 2899

数字IC后端实战:如何用ICC搞定复杂模块的floorplan与powerplan(附避坑指南)

本文深入解析数字IC后端设计中复杂模块的floorplan与powerplan实战技巧,重点介绍多边形模块边界处理、MTCMOS电源网络优化及存储器摆放陷阱规避。通过Synopsys ICC工具的具体操作示例和项目实战经验,帮助工程师高效解决设计难题,提升芯片性能与可靠性。

weixin_29213525的博客 351

QT Widgets模块源码解析与技巧

1_1_QT_Widgets模块简介1_1_QT_Widgets模块简介QTWidgets模块是QT框架的核心模块之一,它提供了一系列的UI元素(如按钮、对话框、工具栏等)和布局管理器,使开发者能够快速地创建美观且功能丰富的桌面应用程序。QTWidgets模块基于QT的核心模块,提供了丰富的窗口系统、事件处理机制、信号与槽机制等,为开发者提供了一种高效且易于使用的编程接口。在QTWidgets模块中,主要包含了以下几个部分,

QT性能优化QT原理源码QT界面美化 1789

SAP Joule for Consultants 与 Joule for Developers 全面解读

SAP推出面向不同用户群体的Joule AI助手:开发者版(Joule for Developers)专注于编码提效,嵌入开发工具链辅助生成、重构和测试代码;顾问版(Joule for Consultants)聚焦业务场景,集成SAP云应用知识库,为咨询项目提供方案设计、差距分析和实施指引。两者共享AI底座但功能侧重点不同:开发者版优化技术开发流程,顾问版加速项目交付周期。典型应用场景包括制造业云转型方案制定和ABAP代码迁移,分别展示了两版本在业务决策支持和技术实施中的价值。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 544

图片风格自动分析模型

对于分类任务,我们可以使用交叉熵损失作为损失函数。同时,我们可以选择随机梯度下降(SGD)或Adam等优化器进行模型优化。# 使用SGD优化器# 或使用Adam优化器在这部分,总结整个项目的过程,包括数据准备、模型构建、训练、优化和评估等。同时,讨论可能的改进方向和未来工作,例如尝试更多的模型结构、优化技巧等。

a871923942的博客 1699

QT Widgets模块源码探索与实战

Widgets模块的概述《QT Widgets模块源码探索与实战》正文Widgets模块的概述在QT框架中,Widgets模块是构建用户界面最基础的部分。它提供了一系列的窗口小部件(Widgets),这些小部件可以是按钮、文本框、标签、滑块等等,是构成桌面应用程序界面不可或缺的元素。Widgets模块不仅包括了这些小部件的定义,还包含了管理这些小部件的框架。在QT中,小部件是以层次化的方式组织的。顶层窗口小部件可以包含其他小部件,形成一个嵌套的结构。

QT性能优化QT原理源码QT界面美化 1435

【算能】TPU-MLIR 工具链之model_deploy

model_deploy.py 是算能 TPU-MLIR 工具链中实现模型高效部署的核心组件,通过灵活的量化配置与硬件优化,可在 ​精度损失 ≤1% 的前提下实现 ​3-5 倍加速。开发者需重点关注校准数据质量、混合精度策略及硬件兼容性

浩瀚之水的专栏 288

Qt教程 — 3.2 深入了解Qt 控件:Input Widgets部件(1)

Qt的Input Widgets部件是一系列专门用于数据输入的界面元素。它们允许用户通过图形界面与应用程序进行交互,并提供不同的数据输入方式。ComboBox (组合框): QComboBox 继承 QWidget 类,被 QFontComboBox 类继承。允许用户从下拉列表中选择一个选项。它可以是可编辑的,允许用户输入一个值,也可以是只读的。FontComboBox (字体组合框): QFontComboBox 继承 QComboBox。

几度春风里的博客 1816

YOLO26涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇 | 引入 LFSB 差分双维注意融合模块,通过交替特征融合与分离策略,能够精准区分目标特征,顶会助力YOLO26有效涨点

本文提出LSFB差分双维注意融合模块,用于改进YOLO26目标检测模型。该模块通过融合-分离交替策略和差分注意力机制,有效提升模型在复杂场景下的特征分离能力,特别是在处理重叠物体或反射干扰时表现优异。LSFB采用双向投影、双维注意力计算和跨流减法算子,实现特征共享与独立提取的平衡。实验表明,该模块能显著减少特征混淆,提高检测精度和鲁棒性。文章还详细介绍了模块实现的核心代码、YAML配置文件修改方法以及三种改进方案,为YOLO26模型性能提升提供了创新解决方案。

Ai缝合怪、助力小伙伴高效发论文 326

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Qt开发:Qt Widgets模块——QCompleter类

QCompleter类根据项目模型提供完成项。头文件:#include &lt;QCommonStyle&gt; qmake:QT += widgets继承:QObject您可以使用QCompleter在任何Qt小部件中提供自动完成功能,例如QLineEdit和QComboBox。 当用户开始输入单词时,QCompleter根据单词列表提出了完成单词的可能方法。 单词列表是作为QAbstractI...

一世豁然的专栏 6537

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

QT Widgets实战

QT_Widgets简介QT Widgets简介QTWidgets是QT框架中用于构建图形用户界面(GUI)的一部分,它是一套完整的UI组件库。QTWidgets为开发者提供了丰富的控件(如按钮、文本框、标签等)以及布局管理器(如垂直布局、水平布局等),使得开发者能够快速地创建出功能丰富且美观的桌面应用程序。QTWidgets的组成QTWidgets主要包括以下几个部分,基本控件,如按钮、文本框、标签、进度条等。布局管理器,如垂直布局、水平布局、网格布局等。容器。

QT性能优化QT原理源码QT界面美化 3274

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

QT入门Input Widgets之QComboBox

qt控件

Littlehero_121的博客 2867

基本Widgets(19):【类】QComboBox [官翻]

文章目录详细说明公共类型enum InsertPolicyenum SizeAdjustPolicy属性公共函数构造和析构属性相关增、删、改、查特殊模型视图部分重写的公共函数公共槽信号受保护的函数重写的受保护的函数小案例 QComboBox Class QComboBox小部件是一个组合的按钮和弹出列表。 Header #include < QComboBox> qmake QT += widgets Inherits QWidget Inherited By Q

读书笔记 1572

【QT】QSS美化——Input Widgets篇&&Display Widgets篇

QSS美化 QComboBox、QLineEdit、QTextEdit、QSpinBox(同QDoubleSpinBox,QTimeEdit,QDateTimeEdit)、QScrollBar(水平和垂直)、QSlider(水平和垂直)、QLabel、QProgressBar

Jason的技术探索与分享 1797

QT实战:利用QSS定制QComboBox下拉项高度与间距的完美解决方案

本文针对QT开发中QComboBox下拉列表项高度与间距难以自定义的常见问题,提供了基于QSS的完美解决方案。通过深入剖析控件结构,指导开发者创建自定义QComboBox子类并替换为QListView视图,从而实现对下拉项高度、间距等样式的精准控制,有效提升UI美观度与用户体验。

ii567的博客 1073

Qt Widgets 框架深度解析:架构、演进与现代应用

摘要:Qt Widgets框架概述 Qt Widgets是基于C++的成熟UI工具包,专为构建高性能桌面应用而设计。其核心架构包含五大支柱:QWidget基类(所有UI元素的父类)、信号与槽机制(类型安全的对象通信)、事件系统(处理用户交互)、绘图系统(通过QPainter实现精细渲染)和布局管理(自动调整界面)。Qt Widgets与Qt Quick形成互补定位:前者适用于功能密集的桌面应用,后者更适合移动端的现代界面。尽管声明式UI流行,Qt Widgets凭借其稳定性、性能优势和底层控制能力,在CAD

greenspan的专栏 965

Qt Widgets相关类说明

Qt 6.2.0中的Widgets的相关类的用途说明

qq_30150579的博客 1186

QT Widgets设计与实践

这一章节以介绍Qt Widgets生态的基础知识开始,并引导读者理解其历史、结构以及与Qt Quick的关系。结合实战案例的解析,旨在提供从理论到实践的全面指南,帮助开发人员在使用Qt进行跨平台GUI开发时建立起坚实的知识基础。自定义事件处理策略自定义事件处理策略在软件开发中,尤其是Qt框架下进行应用程序设计时,事件处理是核心功能之一。事件通常指的是用户与界面元素交互产生的行为或系统内部活动的变化,例如按钮点击、键盘输入或窗口关闭等。

QT性能优化QT原理源码QT界面美化 1473

QT Widgets多平台图像应用开发

Qt基础概述与安装第一章,Qt基础概述与安装1.0 引言在深入探讨基于Qt构建多平台图像应用之前,我们先对Qt进行基本的认识和了解。Qt是一个跨平台的应用程序框架库,由奇仕网络(Trolltech)最初开发,并随后被诺基亚收购并继续维护和更新。Qt提供的组件支持从用户界面到数据处理的各个方面,在桌面、移动设备以及服务器端都能良好运行。1.1 Qt的核心特性跨平台性,Qt提供了一套完整的解决方案,允许开发者在编写一次代码后部署到多个操作系统平台上(如Windows、Linux、macOS)。

QT性能优化QT原理源码QT界面美化 1289

Qt QComboBox 常用方法详解与避坑指南

在桌面应用开发中,下拉选择框是高频交互控件,而 Qt 框架下的 QComboBox 提供了丰富的 API 支持。其核心原理是通过便捷模式或模型视图模式管理数据,并借助信号槽机制响应用户操作。掌握 QComboBox 能显著提升界面开发效率与稳定性,常见于设备配置、参数筛选等场景。本文围绕 QComboBox 的常用方法,系统梳理了数据添加、选中项获取、编辑控制及信号触发等关键技巧,并分享了实际项目中的避坑经验,帮助开发者避开初始化崩溃、选中项丢失等典型问题。

weixin_34327761的博客 370
上一篇: Qt开发:Qt Widgets模块——QColumnView类
下一篇: Qt开发:Qt Widgets模块——QCommandLinkButton类
一世豁然
博客等级 码龄15年 1276粉丝 146原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值