小编סטנ*_*ונן的帖子

Qt5:如何在线程中等待信号?

可能标题问题不是很明确.我在Windows7上使用Qt5.

在一个线程(QThread)中,在"process()"函数/方法中,我必须等待"encrypted()"属于我在此线程中使用的QSslSocket 的SIGNAL.另外我想我应该使用QTimer并等待"timeout()"SIGNAL,以避免在无限循环中被阻塞......
我现在拥有的是:

// start processing data
void Worker::process()
{
    status = 0;
    connect(sslSocket, SIGNAL(encrypted()), this, SLOT(encryptionStarted()));
    QTimer timer;
    connect(&timer, SIGNAL(timeout()), this, SLOT(timerTimeout()));
    timer.start(10000);
    while(status == 0)
    {
        QThread::msleep(5);
    }

    qDebug("Ok, exited loop!");

    // other_things here
    // .................
    // end other_things

    emit finished();
}

// slot (for timer)
void Worker::timerTimeout()
{
    status = 1;
}

// slot (for SSL socket encryption ready)
void Worker::encryptionStarted()
{
    status = 2;
}
Run Code Online (Sandbox Code Playgroud)

好吧,显然它不起作用.它永远停留在那个循环中......
所以,问题是:有没有办法解决这个问题?我怎么能等待那个"encrypted()"SIGNAL但不要超过 …

c++ qt multithreading timer wait

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

Qt5:如何使用qDebug()登录文件,多线程应用程序

我几天前开始使用Qt5.我需要一个记录器用于我的应用程序,我决定使用qDebug,但似乎必须"重定向"才能将日志保存在文件中.

我曾经qInstallMessageHandler这样做,我编写了自己的处理程序,如下所示(灵感来自其他人).

它似乎有效,但由于我不是一个大师,我不得不问:在多线程应用程序中使用它是否可以?

此外,如果在多线程应用程序中使用它是安全/安全的,它可以以某种方式改进吗?

void MessageHandler(QtMsgType type, const QMessageLogContext & context, const QString & msg)
{
    mutex.lock();

    QDateTime dateTime(QDateTime::currentDateTime());

    QString timeStr(dateTime.toString("dd-MM-yyyy HH:mm:ss:zzz"));
    QString contextString(QString("(%1, %2)").arg(context.file).arg(context.line));

    QFile outFile("file.log");
    outFile.open(QIODevice::WriteOnly | QIODevice::Append);

    QTextStream stream(&outFile);
    stream << timeStr << " " << contextString << ": " << msg << endl;

    mutex.unlock();
}
Run Code Online (Sandbox Code Playgroud)

logging qt multithreading thread-safety

11
推荐指数
2
解决办法
5698
查看次数

tensorflow 上的错误无法导入名称“export_saved_model”

使用以下错误文本将 tensorflow 作为 tf 导入时,我不断收到此错误:

导入错误:无法从“tensorflow.python.keras. Saving.saved_model”导入名称“export_saved_model”

使用的代码很简单:

import tensorflow as tf
Run Code Online (Sandbox Code Playgroud)

我已经做好了:

  1. 通过 anaconda cmd 提示符通过 pip 和 condo 卸载和安装 tensorflow
  2. 重新启动并清除内核输出,关闭 jupyternotebook 并重新启动我的计算机

用于张量流卸载的代码:

  1. pip uninstall tensorflow 或者
  2. conda uninstall -y tensorflow

用于tensorflow安装的代码:

  1. pip install tensorflow 或者
  2. conda install tensorflow

我似乎无法弄清楚为什么它一直在说:

“导入错误:无法从‘tensorflow.python.keras. Saving.saved_model’导入名称‘export_saved_model’”

python tensorflow

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

我可以将 SNS 订阅与 VPC 内的内部 ALB 端点一起使用吗?

我有一个 SNS 使用 HTTP 订阅,端点是一个应用程序负载均衡器,它在 VPC 中创建为内部 ALB。

为了让 SNS 调用端点,我必须使端点公开可用,我不能只为 SNS 公开端点,因为我的其他用例正在 VPC 中得到解决。

有没有更好的方法来创建订阅而不必公开端点。

我现在已经公开了端点,但不能永远保持不变

有没有更好的方法来创建订阅而不必公开端点。

amazon-web-services amazon-sns amazon-elb amazon-vpc

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

删除除100个最新行以外的所有行

我正在使用MS SQL数据库,并且有一个名为“ Logs”的表,如下所示:

在此处输入图片说明

记录在这里一个接一个地添加,因此表在几天/几周后变得很大。

我需要定期进行的是一些清理工作。即我需要一个SQL查询,该查询将删除较旧的行并仅在此表中保留最近的100条记录。

我同意最好让它“删除早于some_date的记录” ...以前是这样的,但是客户希望它与众不同:(所以...在这里。

顺便说一句:我对人们对此问题持否定态度感到失望。有什么问题吗?... 想像一下:这个问题已经产生了4个答案!!!……一个人决定对此否定!现在我真的不知道该怎么想...周围的人很奇怪:(

sql t-sql sql-server datetime sql-delete

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

Qt5:如何在QMenuBar中隐藏或删除QMenu?

我在Windows7平台上使用Qt5:
Qt Creator版本是:v3.3.2.
Qt版本5.5.1和MinGW 32位.

目前,我在菜单栏中有:

配置 - 报告 - 帮助

我搜索了SO,我发现这是一个可能的答案:不可能隐藏QMenu对象QMenu :: setVisible()?,但它不起作用 ......

所以,我试图删除帮助菜单使用:

ui->menuHelp->setVisible(false);
Run Code Online (Sandbox Code Playgroud)

和:

ui->menuHelp->menuAction()->setVisible(false);
Run Code Online (Sandbox Code Playgroud)

不幸的是,两人都未能隐藏/删除Help菜单......

拜托,还有其他办法吗?

[码]:

MainWindow::MainWindow(QWidget * parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowFlags(this->windowFlags() & ~Qt::WindowMaximizeButtonHint);
    if(!server.listen(QHostAddress("192.168.1.2"), 8001))
        return;
    if(true) // just testing...
       ui->menuHelp->menuAction()->setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)

c++ qt menu menuitem show-hide

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

通过指向派生类的函数调用基本虚方法

我需要通过指针从派生类调用基本方法A :: foo().

#include <iostream>
struct A{
    virtual void foo() { std::cout << "A::foo()" << std::endl; }
};

struct B:A{
    virtual void foo() { std::cout << "B::foo()" << std::endl; }
    void callBase(void (A::*f)()){
        (this->*f)();
    }
};

int main(){
    B* p=new B();
    p->callBase(&A::foo);
}
Run Code Online (Sandbox Code Playgroud)

此代码输出"B :: foo".是否可以通过指向方法的方法调用A :: foo()?

c++ polymorphism inheritance function-pointers

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

如何查看 AWS Glue Spark UI

在我的 Glue 作业中,我启用了 Spark UI 并指定了 Spark UI 工作所需的所有必要细节(s3 相关等)。
如何查看 Glue 作业的 DAG/Spark UI?

amazon-web-services directed-acyclic-graphs pyspark aws-glue spark-ui

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

Laravel - AWS Beanstalk - 存储符号链接不起作用(403 错误)

我正在使用 elastic beanstalk 来部署我的 laravel 应用程序。除了我的图像之外,一切都工作正常,因为我需要创建一个带有存储的符号链接才能公开访问它。

PS 在我本地运行良好

我的 .ebextensions 文件如下 -

commands:
  composer_update:
    command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update

option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name: COMPOSER_HOME
    value: /root

container_commands:
  01-install_dependencies:
    command: "php /usr/bin/composer.phar install"
    cwd: "/var/app/ondeck"
  02_storage_sym_link:
    command: "php artisan storage:link"
    cwd: "/var/app/ondeck"
    leader_only: true
Run Code Online (Sandbox Code Playgroud)

以下是我的 ec2 实例的日志,用于确认该命令运行正常并且链接已成功创建。

[2019-04-21T15:47:16.899Z] INFO  [21538] - [Application update symlink alt2@208/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Synchro/Test for Command 02_storage_sym_link] : Starting activity...
[2019-04-21T15:47:16.903Z] INFO  [21538] - [Application update symlink alt2@208/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Synchro/Test for Command 02_storage_sym_link] : Completed activity. Result:

  Completed successfully.
[2019-04-21T15:47:16.903Z] …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services laravel amazon-elastic-beanstalk laravel-5

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

何时在 PHP Mysqli 中使用准备好的语句?- 用户表单搜索输入与选择查询

我试图了解何时应该在 php/mysqli 中使用准备好的语句。每个 php/mysqli 查询是否应该使用准备好的语句,还是仅使用涉及用户输入的查询和实例……例如要求用户输入数据以在数据库中进行搜索的 html 表单?

我正在将旧的 php5/mysql 代码迁移到 php7/mysqli。我有很多查询 mysql 数据库的 php 文件。如果我需要对连接到 mysql 数据库的每个 php 文件使用准备好的语句,我想澄清一下...例如通过“php require”引用的 php 文件,并包含简单的 sql select 语句来渲染图像和链接到 html页?

<?php

//establish connection

$con = new mysqli('localhost','uid','pw','db');

//check connection

if ($con->connect_error) {
die("Connection failed: " . $con->connect_error);  
}

//search variable that stores user input

$search = "%{$_POST['search']}%";

//prepare, bind and fetch

$stmt = $con->prepare("SELECT image, caption FROM `tblimages`
WHERE catid = 3 AND caption LIKE ? order by caption ASC");
$stmt->bind_param("s", $search);
$stmt->execute();
$stmt->bind_result($image,$caption); …
Run Code Online (Sandbox Code Playgroud)

php mysqli prepared-statement

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