小编use*_*577的帖子

Python xticks在子图中

如果我绘制一个imshow我可以使用的情节

fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24],  [5, 15, 25] )
Run Code Online (Sandbox Code Playgroud)

替换我的xtick标签.

现在,我正在imshow使用绘制12个地块

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
Run Code Online (Sandbox Code Playgroud)

如何才能为这些子图之一更改我的xticks?我只能访问子图的轴axarr[i, j].我如何plt只访问一个特定的子图?

python matplotlib imshow

60
推荐指数
2
解决办法
14万
查看次数

QWidget :: repaint:更新进度条时检测到递归重绘

我的Qt应用程序有多个线程.其中一个叫ui->SyncUI(),和ui的对象在哪里class Interface : public QMainWindow

void Interface::SyncUI() {
QWidget* bar_widget = ui.tableWidget->cellWidget(0,4);
QProgressBar* bar_widget2 = dynamic_cast <QProgressBar*> (bar_widget);
bar_widget2->setValue( (int)percentage );
}
Run Code Online (Sandbox Code Playgroud)

这会导致运行时错误:

QWidget :: repaint:检测到递归重绘

我发现这个 https://qt-project.org/forums/viewthread/24921 但是我不太明白为什么从另一个线程设置bar widget值是非法的.

谢谢!

c++ qt multithreading

9
推荐指数
1
解决办法
9956
查看次数

使用 chrono 进行精确时间睡眠

我希望我的应用程序休眠 2000 微秒:

#include <iostream>
#include <chrono>
#include <thread>

std::cout << "Hello waiter" << std::endl;
std::chrono::microseconds dura( 2000 );

auto start = std::chrono::system_clock::now();
std::this_thread::sleep_for( dura );
auto end = std::chrono::system_clock::now();

auto elapsed = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
std::cout << "Waited for " << elapsed.count() << " microseconds" << std::endl;
Run Code Online (Sandbox Code Playgroud)

这导致

Waited for 2620 microseconds
Run Code Online (Sandbox Code Playgroud)

这种差异从何而来?是否有更好(更精确)的方法可用?

谢谢!

c++ c++-chrono

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

跨线程的信号槽

假设我有一个class cWorker : public QObject包含a SLOT listen().此对象将移至单独的线程.

主窗口包含一个class GLWidget : public QGLWidget,有一个SIGNAL request()

我如何connect跨越两个线程的信号槽?它应该是直截了当但我找不到任何示例代码.谢谢.

int main(int argc, char *argv[])
{

cWorker* worker = new cWorker();

QThread* thread = new QThread;
worker->moveToThread(thread);

QObject::connect(thread, SIGNAL(started()), worker, SLOT(work()) );

thread->start();


QApplication a(argc, argv);
MainWindow w;

GLWidget *my_gl_widget = w.findChild<GLWidget*>("widget");


// THIS DOESN'T WORK
QObject::connect(my_gl_widget, SIGNAL( request() ), worker, SLOT( listen() ));


w.show();

return a.exec();
Run Code Online (Sandbox Code Playgroud)

}

c++ qt multithreading

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

标签 统计

c++ ×3

multithreading ×2

qt ×2

c++-chrono ×1

imshow ×1

matplotlib ×1

python ×1