小编Ily*_*lya的帖子

将QPushButton添加到QTableWidget中的QTableWidgetItem中,如何使其成为Qt :: AlignHCenter

for(int i=0; i<page.size(); i++){
    User user= Poco::AnyCast<User>(*it);
    ui.table->setItem(i,0,new QTableWidgetItem(user.userName)); 
    ui.table->setItem(i,1,new QTableWidgetItem(user.sex));
    ui.table->setItem(i,2,new QTableWidgetItem(user.age));

    QPushButton* btn_edit = new QPushButton();
    btn_edit = new QPushButton();
    btn_edit->setText("Edit");
    ui.table->setCellWidget(i,3,(QWidget*)btn_edit);

    ++it;
}
Run Code Online (Sandbox Code Playgroud)

我使用函数setCellWidget()将QPushButton添加到单元格中,我知道,如果它是QTableWidgetItem,我可以使用:

ui.table->item(0,3)->setTextAlignment(QT::AlignHCenter)
Run Code Online (Sandbox Code Playgroud)

但它是一个小工具,

QTableWidgetItem item = ui.table->item(0,3); 
Run Code Online (Sandbox Code Playgroud)

该项为null.

我可以通过使用获得细胞

ui.table->cellWidget(0,3).
Run Code Online (Sandbox Code Playgroud)

如何使按钮在单元格中居中?

c++ qt qtablewidget qtablewidgetitem

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

启动屏幕中的自定义动画

我使用Swift在Xcode 7中创建了一个新项目.我注意到启动屏幕存储在storyboard文件中.

所以我认为如果可以通过引用它来定制它CustomLauchScreenViewController.但是,当我在其中设置自定义类名称时LaunchScreen.storyboard,它会抛出一个错误:

启动屏幕可能无法设置自定义类名

那么自定义LaunchScreen的最佳方法是什么?我打算在启动主屏幕之前使用LaunchScreen加载一些数据.

xcode ios launch-screen

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

如何使用Qt运行Windows cmd命令?

我必须使用Qt运行以下命令,它将弹出Git GUI窗口.

D:\MyWork\Temp\source>git gui
Run Code Online (Sandbox Code Playgroud)

我怎么做?

我尝试了以下,但它不起作用:

QProcess process;   
process.start("git gui",QStringList() << "D:\MyWork\Temp\source>");
Run Code Online (Sandbox Code Playgroud)

c++ qt qprocess

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

如何在Qt中检测屏幕的DPI变化?

由于我有一个QWidget可以在两个监视器之间切换并根据屏幕DPI动态更新的窗口(派生自),似乎我只能收听screenChanged(QScreen*)信号.当我在监视器之间拖动窗口时,它工作正常.

但是当我在另一个监视器中打开应用程序并在两个监视器之间切换菜单栏时(通过系统首选项 - >显示 - >安排在mac中)它不起作用.似乎在那种情况下不发出信号.

我应该听哪个信号?有没有更好的办法?

qt dpi

6
推荐指数
0
解决办法
796
查看次数

在头文件中声明Qt类

我正在阅读有关使用Qt5(作者Max Schlee)的书,我注意到一些例子已经在头文件中声明了现有的Qt类,例如:

class QProgressBar;
Run Code Online (Sandbox Code Playgroud)

所以,我的问题 - 为什么我们不在头文件中包含头文件QProgressBar而不class QProgressBar;在我们的头文件中声明?

c++ qt forward-declaration qt5

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

如何在后台线程中为QFileSystemModel创建自定义图标

我在qt中为一些自定义设计文件制作文件浏览器.我想加载他们的预览作为他们的缩略图,因此我QIconProvider用来将Icon返回给我QFileSystemModel.

问题是创建的算法QIcon需要一些资源,因此我的应用程序在完成加载所有缩略图之后才会响应.

我想知道是否有任何方法可以将我QIconProvider放在后台线程中,以便我的应用程序响应.

qt thumbnails qfilesystemmodel background-thread qicon

6
推荐指数
2
解决办法
824
查看次数

如果所有儿童小部件都失去焦点,则发出信号

我有一个QStackedWidget包含各种各样QLineEditQComboBox儿童的几页.我想发出每当一个信号QStackedWidget不再具有任何与焦点孩子(因为孩子已经集中到开始).因此,从孩子到孩子的移动不会发出信号,但是一旦在外部选择了小部件QStackedWidget,就会发出信号.关于如何实现这一点的任何建议?我看InstallEventFilterQSignalMapper,但那些都似乎符合我的需要.任何意见,将不胜感激.

qt

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

QApplication::setWindowIcon 适用于 Windows XP,但不适用于 Windows 7

在一个简单的 Qt 应用程序中,如下所示:

int main(int argc, char* argv[])
{
  QApplication app(argc, argv);
  app.setWindowIcon(QIcon(":/qapp/appicon.ico"));
...
Run Code Online (Sandbox Code Playgroud)

我们在第二行设置图标(这一行和资源中的图标文件是我的测试程序和Qt向导生成的应用程序的唯一区别)。这个应用程序在 Windows XP 上运行完美,但在 Windows 7 上我们看不到窗口左上角的图标(系统显示默认图标而不是我的 appicon.ico)。

开发者电脑配置:

  • 视窗 XP-SP3,
  • Qt 5.1,
  • MSVS2010-SP1。

更新:

开发者的操作系统是Windows XP,所以我们有一个临时的答案。当我们在装有 Windows 7 的计算机上编译此应用程序时,问题消失了(应用程序在 WinXP 和 Win7 上正确显示图标)。所以现在我们必须在 Windows 7 上编译这个应用程序的版本。但这看起来不是完美的解决方案。

你有什么想法,如何更好地解决这个问题?

c++ qt windows-xp windows-7 qt5

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

使用QAudioInput在linux中录制并在Windows中播放

为了我的目的,我想以原始格式(仅样本),8kHz,16bit(小端)和1个通道录制声音.然后,我想将这些样本传输到窗口并使用QAudioOutput播放它.所以我有两个独立的程序:一个用于使用QAudioInput录制语音,另一个用于提供包含一些样本的文件,然后我用QAudioOutput播放它.下面是我创建QAudioInput和QAudioOutput的源代码.

//Initialize audio
void AudioBuffer::initializeAudio()
{
  m_format.setFrequency(8000); //set frequency to 8000
  m_format.setChannels(1); //set channels to mono
  m_format.setSampleSize(16); //set sample sze to 16 bit
  m_format.setSampleType(QAudioFormat::UnSignedInt ); //Sample type as usigned integer sample
  m_format.setByteOrder(QAudioFormat::LittleEndian); //Byte order
  m_format.setCodec("audio/pcm"); //set codec as simple audio/pcm

  QAudioDeviceInfo infoIn(QAudioDeviceInfo::defaultInputDevice());
  if (!infoIn.isFormatSupported(m_format))
  {
      //Default format not supported - trying to use nearest
      m_format = infoIn.nearestFormat(m_format);
  }

  QAudioDeviceInfo infoOut(QAudioDeviceInfo::defaultOutputDevice());

  if (!infoOut.isFormatSupported(m_format))
  {
     //Default format not supported - trying to use nearest
     m_format = infoOut.nearestFormat(m_format);
  }
  createAudioInput();
  createAudioOutput();
}

void …
Run Code Online (Sandbox Code Playgroud)

c++ audio qt alsa

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

如何在可编辑的QTableWidgetItem中捕获按键?

现在我可以处理QTableWidget函数中的所有按键eventFilter()(在myTable->viewport()->installEventFilter(this);构造函数中调用之后).

在编辑时,唯一不起作用的地方是可编辑单元格(因为它会抓取所有按键).为了解决这个问题,我无法调用installEventFilter()表中的每个项目,因为这些项目不是QObjects(我也不能connect用于处理按键处理).

我唯一的解决方案是将QLineEdits放在这些单元格中,并使用事件过滤器在编辑时捕获按键.但是,仅使用标准物品可以解决它吗?(即只QTableWidgetItem带一面旗帜Qt::ItemIsEditable)

我也可以打电话grabKeyboard()给我QTableWidget.在这种情况下,我将按下所有按键(即使在用户编辑单元格时),但它会阻止编辑框(即用户无法输入任何内容).可能是在调用grabKeyboard()表后修复损坏的编辑框?

c++ qt qtablewidget qtablewidgetitem

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