小编Dan*_*erg的帖子

QSlider踩?

我想指定QSlider可以滑动的步骤,就像使用QSpinBox一样setSingleStep.我尝试使用QAbstractSlider的setSingleStep,但这似乎没有效果.

有任何想法吗?

python qt pyqt qslider qabstractslider

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

使用样式表时的 QTabWidget tabPosition

我目前正在使用样式表来设计应用程序的主题。这是我用于 QTabWidget 的样式表:

/*QTabBar et QTabWidget*/
QTabBar::tab {
    background: qlineargradient(spread:pad, x1:0.5, y1:0, x2:0.5, y2:1, stop:0 rgba(73, 73, 74, 255), stop:1 rgba(40, 40, 40, 255));
    border: 1px solid rgb(190, 190, 190);
    max-height: 0.6em;
    min-width: 0.6em;
    padding: 5px;
    margin-left: -1px;
    margin-right: -1px;
}
QTabBar::tab:selected, QTabBar::tab:hover {
    background: qlineargradient(spread:pad, x1:0.5, y1:1, x2:0.5, y2:0, stop:0 rgba(39, 117, 219, 255), stop:1 rgba(107, 171, 249, 255));
}


QTabBar::tab:last {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    margin-right: 0px;
}

QTabBar::tab:first {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    margin-left: 0px;
}

QTabBar::tab:only-one …
Run Code Online (Sandbox Code Playgroud)

qt stylesheet qtabbar qtabwidget

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

未检测到QTabWidget的信号

我的QTabWidget实现没有检测到它tabCloseRequested()currentChanged()信号.

TileSheetManager::TileSheetManager(QWidget *parent)
: QTabWidget(parent)
{
    int w = WIDTH;
    int h = HEIGHT;

    this->setMinimumSize(w, h);
    this->setMaximumSize(w, h);

    setTabsClosable(true);
    setTabShape(QTabWidget::Rounded);

    connect(this, SIGNAL(tabCloseRequested(int index)), this, SLOT(closeTileWidget(int index)));
    connect(this, SIGNAL(currentChanged(int index)), this, SLOT(tabChanged(int index)));
}
Run Code Online (Sandbox Code Playgroud)

qDebug()对我不起作用,所以我正在使用QMessageBox它.

void TileSheetManager::closeTileWidget(int index)
{
   QMessageBox msgBox;
   msgBox.setText("Tab " + QString::number(index) + " removed!");
   msgBox.exec();

   TileWidget *t = (TileWidget *) widget(index) ;
   t->deleteLater();
   removeTab(index);
}

void TileSheetManager::tabChanged(int index)
{   
    QMessageBox msgBox;
    msgBox.setText("Tab was Changed!");
    msgBox.exec();

    TileWidget *t;

    for(int i = …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtabwidget

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

尝试将小部件添加到QTabWidget时出错

我想创建一个窗口并添加一个QTabWidgets以及我想要的小部件.所以我遵循了Qt TabDialog示例,据我所知,我遵循了与示例中相同的路径.问题是在试图加我的小部件的标签我得到这个错误:"/home/user/Programming/C++/QtTests/TabExample/TabExample-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK__Release/../TabExample/tabwidget.cpp:20:错误:没有匹配函数来调用'QTabWidget :: addTab(Tab_One*,QString*&)'".为什么我会收到此错误,因为Tab_One是从QWidget继承的?这是我的主要小部件代码:

头文件:

#ifndef TABWIDGET_H
#define TABWIDGET_H

#include <QWidget>

class QTabWidget;
class Tab_One;
class Tab_Two;
class QString;
class QHBoxLayout;
class QDialog;

class TabDialog : public QDialog {
    Tab_One *firstTab;
    Tab_Two *secondTab;
    QTabWidget *myTabWidget;
    QString *labelTabOne;
    QString *labelTabTwo;
    QHBoxLayout *layout;
public:
    TabDialog(QWidget *parent = NULL);
};

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

和源文件:

#include <QWidget>
#include <QDialog>
#include <QTabWidget>
#include <QHBoxLayout>
#include <QString>

#include "tabwidget.h"
#include "tab1.h"
#include "tab2.h"

TabDialog::TabDialog(QWidget *parent) : QDialog(parent)
{
    layout = new QHBoxLayout;

    labelTabOne = new QString("My …
Run Code Online (Sandbox Code Playgroud)

c++ qt qtabwidget

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

如何获取QLineEdit的内容

我想QLineEdit用于输入.我的问题是我不知道如何阅读其内容.

比方说我有:

QLineEdit *edit = new QLineEdit("");
Run Code Online (Sandbox Code Playgroud)

将其添加到GUI后如何获取内容?提前致谢.

c++ qt

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

鼠标按下事件后,QWidget不响应.

我正在尝试使用鼠标按下事件来处理我创建的小部件,但每次单击小部件时,窗口都会停止响应,我必须终止程序.有谁知道如何解决这个问题以及如何改变颜色?

这是.h和.cpp文件.

.cpp文件:

#include "iconwidget.h"
#include <QPaintEvent>
#include <QPainter>
#include <QPainterPath>

iconWidget::iconWidget(QWidget *parent) :
    QWidget(parent)
{
    this->resize(ICON_WIDGET_WIDTH,ICON_WIDGET_HEIGHT);
    pressed = false;
}

void iconWidget::paintEvent(QPaintEvent *event)
{
    QRect areatopaint = event->rect();
    QPainter painter(this);
    QBrush brush(Qt::black);
    QPointF center = this->rect().center();
    QPainterPath icon;
    icon.addEllipse(center,20,20);
    painter.drawPath(icon);
    painter.fillPath(icon, brush);

    if (pressed) {
        brush.setColor(Qt::red);
    }
}

void iconWidget::mousePressEvent(QMouseEvent *event)
{
    pressed = true;
    update();
    iconWidget::mousePressEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

.h文件:

#define ICONWIDGET_H

#include <QWidget>

#define ICON_WIDGET_WIDTH 45
#define ICON_WIDGET_HEIGHT 45

class iconWidget : public QWidget
{
    Q_OBJECT

public:
    explicit iconWidget(QWidget …
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4 qwidget qt5

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

是否有必要在子类中调用基类的事件处理程序?

说我已经QWidget::keyPressEvent(QKeyEvent *e)在我的子类中重新实现了.

是否有必要在最后调用基类的实现?

例:

MyWidget::keyPressEvent(QKeyEvent *e)
{
    // my event handler...

    // now call parent event handler, necessary?
    QWidget::keyPressEvent(e);
}
Run Code Online (Sandbox Code Playgroud)

如果是这样,有什么意义呢?

inheritance qt qt4 qevent qt5

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

我的QTreeWidgetIcons在哪里?

我有一个QTreeWidgetQTreeWidgetItem项目,但只有根节点显示其图标:

在此输入图像描述

我一直在摸不着什么可以把它关掉,任何提示?

  ui->folderTree1->setUpdatesEnabled( false );

  QTreeWidgetItem* treeRoot1 = new QTreeWidgetItem(ui->folderTree1);
  treeRoot1->setIcon(0, QIcon(":/icons/black.png"));
  treeRoot1->setText(0, tr("Root"));
  treeRoot1->setExpanded(true);
  addFoldersToTreeView(treeRoot1, ui->filePath1->text(), ui->filePath2->text());

  ui->folderTree1->setUpdatesEnabled( true );
}

void MainWindow::addFoldersToTreeView(QTreeWidgetItem* currentWidget, QString leftPath, QString rightPath)
{
  qDebug() << "MainWindow::addFoldersToTreeView" << leftPath;
  QDir dir(leftPath);
  QDir dir2(rightPath);
  /* Add the folders */
  foreach (QString subDir, dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
  {
    QString sImageName = ":/icons/black.png";
    QTreeWidgetItem* newItem = new QTreeWidgetItem(currentWidget);
    qDebug() << "MainWindow::addFoldersToTreeView.sImageName" << sImageName;
    newItem->setIcon(0, QIcon(sImageName));
    newItem->setText(0, subDir);
    newItem->setExpanded(true);
    newItem->setData(0, 1, QVariant(leftPath + QDir::separator() + …
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4 qtreewidget qt5

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

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

使Qt按钮彼此连接

我想用Qt4库来实现这种效果:一个按钮组,它附加在它旁边的每个按钮。在Gtk3中,我仅将“链接”类应用于容器小部件。如何在Qt4中完成?

在此处输入图片说明

qt4 button

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