小编lag*_*oru的帖子

我如何从另一个班级发出信号?

我的Qt应用程序有问题.我正试图从另一个类中发出一个信号(它是放置信号的嵌套类).

我已经将信号连接到一个插槽,应该没问题.但是当我尝试从这个嵌套类中发出这个信号时,我得到编译器错误:

没有对象就无法调用成员函数

怎么了?我在Qt文档中找到了它,但找不到合理的解决方案甚至解释.

简化的类定义如下所示.

class LogWriter : public QDialog
{   
   Q_OBJECT

public:
   class Log : public QObject
   {
      Q_OBJECT

   public:
      bool print;

      Log(bool _print, QString _color, QObject *obj = NULL)
         : QObject(obj)
      {
         print = _print;
         color = _color;
      }
   };

   LogWriter(QWidget * parent = 0);
   ~LogWriter();

public slots:
   void setMinVal();
   void setMediumVal();
   void setHighVal();
   void cleanWindow();
   void appendText(QString &text);

signals:
   void signalLogAppend(QString);
};
Run Code Online (Sandbox Code Playgroud)

LOW使用以下函数调用将客户端代码中LogWriter 实例的信号连接到某个插槽:

connect(&LOW, SIGNAL(signalLogAppend(QString)),
        this, SLOT(appendText(QString&)),
        Qt::DirectConnection);
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4 signals-slots

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

如何使快捷方式从 PATH 工作

我在 Windows 上有两个版本的 Python,想通过cmd. 我试图制作它们的快捷方式python.exe并将它们重命名为python26python33(我还将它们的位置添加到PATH),但不幸的是这不起作用。中的调用python26python26.lnk输出not recognized as an internal command

有没有其他方法可以做到(如 Linux virtualenv),或者我错过了我的想法?

python windows path

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

为什么pthread_mutex_t不能是类的静态字段?

我有pthread_mutex_t的问题.当我尝试创建静态字段pthread_mutex_t,然后在静态函数中初始化它,最后在一些类方法中使用它我得到很多错误,如:

main.o: In function `LogWriter::initialize(pthread_mutex_t*)':
 main.cpp:(.text._ZN9LogWriter10initializeEP15pthread_mutex_t[LogWriter::initialize(pthread_mutex_t*)]+0x7): undefined reference to `LogWriter::mutex'
Run Code Online (Sandbox Code Playgroud)

简化的类代码:

class LogWriter{
    static pthread_mutex_t mutex;

    static void initialize(pthread_mutex_t *mut){
    LogWriter::mutex = PTHREAD_MUTEX_INITIALIZER;
    //if(pthread_mutex_init(&(LogWriter::mutex), NULL) != 0){
        //init failed
    //}
    }
    public:
    static LogWriter getInstance(string module_name){
    LogWriter  instance(module_name);
    return instance;
    }

    LogWriter& operator<<(string a);
};
Run Code Online (Sandbox Code Playgroud)

我的问题是:为什么?我知道如果我将它定义为正常(非静态)字段,我将不会有任何问题.也搜索谷歌,但我找不到任何与此相关的材料.还创建指向静态pthread_mutex的指针,并在main函数中初始化,如下所示.

c++ mutex pthreads

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

标签 统计

c++ ×2

mutex ×1

path ×1

pthreads ×1

python ×1

qt ×1

qt4 ×1

signals-slots ×1

windows ×1