小编The*_*ght的帖子

与小牛队在Qt中的Objective-C

我一直在Qt中使用Objective-C与C++混合而没有任何问题; 在需要时使用.mm文件.

在将我的构建机器升级到Mavericks之后,我最初注意到框架头文件丢失了,因此安装了XCode命令行工具,修复了这个问题.

现在,我在编译Objective-C文件时遇到问题,错误抱怨框架中的代码.例如: -

系统/库/框架/ Foundation.framework/Versions/C/Headers/NSUserNotification.h:16:44:错误:在枚举器之间缺少','NSUserNotificationActivationTypeReplied NS_AVAILABLE(10_9,NA)= 3

/System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSApplication.h:58:34:错误:预期';' 在顶级声明符之后typedef NSInteger NSModalResponse NS_AVAILABLE_MAC(10_9);

我已升级到Qt 5.2.1,但问题仍然存在,而且它来自包括标准框架标题; 在这种情况下: -

#import <NSUserNotification.h>
#import <NSApplication.h>
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下小牛队的变化以及如何解决这些错误吗?

c++ macos qt objective-c osx-mavericks

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

使用Core基金会向Mountain Lion通知中心发送消息

我正在用Qt开发一个守护进程,并希望向Mountain Lion通知中心发送消息: -

在此输入图像描述

Qt似乎缺乏对此的支持,这并不奇怪,因为它不是跨平台的.

如果我使用的是Cocoa,看起来我会将NSUserNotificationCenter类与NSUserNotification一起使用.

到目前为止,每当我看到一个Foundation类时,总会有一个匹配的Core Foundation类,但似乎没有CFUserNotificationCenter,但是有一个CFUserNotification.

那么,我是否正确,NSNotificationCenter是Cocoa用于此目的,是否可以在没有Cocoa的情况下向Notification Center发送消息?

如果有可能,请有人在C或C++中发布代码示例,或者至少指出要使用哪些函数?

c++ macos notifications qt core-foundation

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

如何绘制带有圆角的QPixmap?

我继承了QGraphicsPolygonItem,想在该项目的顶部绘制一个QPixmap。项目本身和像素图应绘制有圆角。

你怎么会这样

qt qpixmap qpainter

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

连接到本地套接字

我一直在尝试创建到本地套接字文件的连接,但 errno 总是返回 -1

var socketPath = "/path/to/socket"

let sockDesc = socket(AF_LOCAL, SOCK_STREAM, 0)

var address =  sockaddr_un()
address.sun_family = UInt8(AF_LOCAL)
address.sun_len = UInt8(bitPattern:Int8(MemoryLayout<sockaddr_un>.size))

let dataPtr = UnsafeMutablePointer<Int8>(&address.sun_path.0)
strncpy(dataPtr, socketPath, socketPath.characters.count)

let result = withUnsafePointer(to: &address) {
    $0.withMemoryRebound(to: sockaddr.self, capacity: 1) {

        connect(sockDesc, $0, socklen_t(MemoryLayout<sockaddr>.stride));
    }
}
Run Code Online (Sandbox Code Playgroud)

套接字是有效的,作为用 Qt 开发的另一个客户端可以愉快地连接到该路径。

这里有明显的错误吗?或者这应该有效吗?

sockets swift

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

从 sudo 提升的脚本以标准用户身份运行命令

如果使用 sudo 执行了 bash 脚本,脚本中的命令如何以当前登录的用户身份而不是 root 身份运行,然后恢复为 root 以继续运行其他命令?

例如: -

#!/usr/bash

touch fileOwnedByRoot.txt
touch fileOwnedByUser.txt
touch otherRootFile.txt
Run Code Online (Sandbox Code Playgroud)

如果这个脚本是用sudo运行的,不改变命令的顺序,第二个touch命令如何以标准用户的身份运行?

该脚本只是一个简单的示例,因此使用 chmod 更改创建的文件的所有权是无关紧要的。

我正在使用的实际脚本由安装程序运行,因此要求以提升的权限运行,但特定命令必须以运行安装程序的用户身份运行,其名称未知。

macos bash shell sudo

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

QTableView并双击一个单元格

我正在研究一个测试用例编辑器.该编辑器包含USART发送和接收数据包格式.编辑器是一个表格视图.

发送和接收数据包长度为8个字节,例如:

0x01 0x02 0x03 ... 0x08
Run Code Online (Sandbox Code Playgroud)

这是我的第五和第六栏.现在,我希望此列中的单元格只读,但是当我双击这些列中的任何单元格时,会显示一个弹出窗口小部件.该小部件将在文本编辑中包含八个框,其中用户可以输入数据包格式(即八个字节长)数据.我可以轻松地将这些数据从弹出窗口小部件复制回后端的只读单元格.

这将取消用户的所有策略,例如每个字节之间是否应该有空格.因此,这将消除潜在的人为错误.

1:是否有用于双击表视图单元格的事件处理程序?

2:我可以为同一列的每个单元格设置一个通用的双击处理程序吗?

3:如何在表格视图中只读取特定列的单元格,同时保留最终可以更改其值(即返回)的事实?

在此输入图像描述

c++ qt qtableview qtgui

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

QT文件打开和关闭

这是我的QFILE类的声明.

class AbsFileHandler
    {

    public:
        QFile absfile;
        QString absfilename;
        QTextStream absstream;
        void CreateAbsFile();
        void CloseAbsFile();

        AbsFileHandler()
        {

        }
        ~AbsFileHandler()
        {
        }

    };
Run Code Online (Sandbox Code Playgroud)

及其方法构建

void AbsFileHandler::CreateAbsFile()
    {

        absfilename = absfilename + '.abs';
        absfile(absfilename);

        if (!absfile.open(QIODevice::WriteOnly | QIODevice::Text))
            qDebug() << absfile.errorString();
        else
            qDebug() << "It worked";

    }

void AbsFileHandler::CloseAbsFile()
    {
        absfile.close();
    }
Run Code Online (Sandbox Code Playgroud)

我在absfile中有错误(absfilename); 声明.为什么这个陈述中的错误.谢谢.

methods qt file

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

解析QTextStream

我的问题很简单,但我无法解决这个问题......

在我的标题中:

QTextStream *in = NULL;
Run Code Online (Sandbox Code Playgroud)

在一个方法中,QTextStream被初始化:

in = new QTextStream(&file);
Run Code Online (Sandbox Code Playgroud)

然后我试图用另一种方法解析它:

QString next;

if(in != NULL){
    while(!in->atEnd()){
        next = in->readLine();
    }
}
else{
  QMessageBox::critical(this, "Error", "No file to test!");
}
Run Code Online (Sandbox Code Playgroud)

当初始化精品工程,应用程序崩溃的测试,如果atEnd() .我究竟做错了什么?我需要是可访问的几种方法.我要在这里(?)使用指针,因为后来被初始化(据我所知这是不可能的引用)

这可能是显而易见的,但我对c ++相当新...

谢谢!

c++ qt qtextstream

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

使用-c和用于awk的管道字符串调用bash命令

如果我从命令提示符运行以下命令,它按预期方式工作: -

ps -eo pid,command | grep -v bash | grep syslogd | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

输出只是syslogd进程的pid.根据bash的手册页,使用-c参数允许传递一串命令.所以,我试过这个: -

/bin/bash -c "ps -eo pid,command | grep -v bash | grep syslogd | awk '{print $1}'"
Run Code Online (Sandbox Code Playgroud)

不打印syslogd进程的pid,而是打印syslogd的路径: -

 19 /usr/sbin/syslogd
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会这样,如果可以用这种方式用bash调用命令,那么它的作用与直接调用命令时的行为相同,只打印进程的pid?

linux macos bash shell awk

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

如何在Qt中将Jpeg Base64字符串转换为jpeg图像

我是从Qt开始的

我需要将Jpeg图像的Base64字符串转换为Qimage并将其显示在QLabel中

有人可以指导我如何去做这件事吗?

c++ qt qimage

-4
推荐指数
1
解决办法
1304
查看次数