小编Dib*_*ibo的帖子

具有自定义布局的DialogFragment会导致我的应用程序崩溃

我有Dialog碎片的问题.我的自定义布局的简单对话框正常工作.但我希望在显示对话框时启动控件.我试图用方法做到这一点onActivityCreated.但是getView()返回null,所以我认为我必须设置自定义视图onCreateView而不是onCreateDialog.在这里发生错误.当我使用onCreateView时,我的应用程序崩溃了.这是我的代码:

class StatisticDialog extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder .setPositiveButton(getString(android.R.string.ok), new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       // FIRE ZE MISSILES!
                   }
               });
        // Create the AlertDialog object and return it
        return builder.create();
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.statistics, container, true);
    } …
Run Code Online (Sandbox Code Playgroud)

android android-dialogfragment

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

编程屏幕录像机 - 输出问题

我想要记录屏幕(通过每秒捕获15个屏幕截图).这部分我知道怎么做.但我不知道如何将其写成一些流行的视频格式.我找到的最佳选择是将帧写入分离的PNG文件并使用命令行Mencoder,它可以将它们转换为多种输出格式.但也许有人有另一个想法?

要求:

  • 必须是多平台解决方案(我使用Free Pascal/Lazarus).Windows,Linux,MacOS
  • 存在一些图书馆吗?
  • 可能是复杂的命令行应用程序,它也为我记录屏幕,但我必须有可能编辑帧之前将整个原始数据转换为流行的视频格式
  • 所有能给我一些想法的材料都值得赞赏.API,图书馆,甚至除了FPC之外的任何其他语言(我会尝试重写它或找到一些等价物)
  • 我还考虑将帧写入视频RAW格式然后使用Mencoder(他可以处理它)或其他解决方案,但找不到任何用于视频RAW数据的API/doc

问候

delphi freepascal video-processing lazarus

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

传递 Intent 返回的 Uri 时,ContentResolver 中的 Uri 不受支持

我有一个应用程序,用户可以通过选择一个文件或将选定目录中的所有文件添加到ListView. 添加单个文件时,一切都很好,但是对于目录,我得到了Unsupported Uri. 问题与权限无关:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.dibo.testapp, PID: 12226
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=65579, result=-1, data=Intent { dat=content://com.android.providers.downloads.documents/tree/raw:/storage/emulated/0/Download/2006 A Good Year flg=0xc3 }} to activity {com.example.dibo.testapp/com.example.dibo.testapp.MainActivity}: java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.providers.downloads.documents/tree/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2F2006%20A%20Good%20Year
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4360)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.providers.downloads.documents/tree/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2F2006%20A%20Good%20Year
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
        at android.content.ContentProviderProxy.query(ContentProviderNative.java:418)
        at android.content.ContentResolver.query(ContentResolver.java:802)
        at android.content.ContentResolver.query(ContentResolver.java:752)
        at …
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-contentresolver

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

GMail IMAP - 如何获得对话(线程)列表?

我正在尝试创建类似于GMail的视图.我知道GMail IMAP有扩展X-GM-THRID,我可以在FETCH命令中使用,但这会返回相同数量的项目,我必须通过线程ID手动分组.有没有更快的方式来分组?我的意思是,可以google imap服务器返回我按线程ID分组的消息列表(比如在gmail web界面中)?更具体:

如果我有这个清单(THREAD ID | TEXT)

  • 12345"你好"
  • 12345"你好"
  • 12345"怎么了?"
  • 67890"你在吗?"
  • 67890"不,我不是"

我想从服务器获取:

  • 12345"你好"
  • 67890"你在吗?"

我能这样做吗?最后,我必须通过我自己对此进行分组,但这种解决方案效率低且速度慢(我有很多消息要分组)

对我的英语表示遗憾和抱歉.

gmail imap gmail-imap

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

如何从 Linux 上运行的 Free Pascal 应用程序播放 wav 文件?

我有一个用 Free Pascal 编写的多平台应用程序。此应用程序在某些事件上播放短促的声音。在 Windows 上,我可以通过 MMSystem 和 sndPlaySound('sound.wav') 来做到这一点。但是,我不知道如何在没有外部库的情况下在 Linux 上执行此操作。

我有一个使用 SDL 和 OpenAL 播放它的解决方案,但我不希望对这些库有任何依赖来播放一个简短的声音。默认情况下,是否存在大多数发行版上都存在的 Linux 命令行播放器?文件格式无关紧要;我会转换它。

linux freepascal

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

QPropertyAnimation不起作用

我正在尝试在Qt桌面应用程序中测试动画.我刚刚从帮助中复制了示例.单击按钮后,新按钮只显示在左上角没有动画(甚至结束位置错误).我错过了什么吗?

Qt 5.0.1,Linux Mint 64bit,GTK

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPropertyAnimation>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QPushButton *button = new QPushButton("Animated Button", this);
    button->show();

    QPropertyAnimation animation(button, "geometry");
    animation.setDuration(10000);
    animation.setStartValue(QRect(0, 0, 100, 30));
    animation.setEndValue(QRect(250, 250, 100, 30));

    animation.start();
}
Run Code Online (Sandbox Code Playgroud)

编辑:解决了.动画对象必须作为全局引用.例如,在私有QPropertyAnimation*动画部分中.然后QPropertyAnimation = New(....);

qt

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

全局对象和创建顺序

我还在学习C++.我有一个问题.假设您的项目具有始终存在的全局对象,例如ApiManager,所有其他模块都可以访问它(by #include).现在我通过以下方式做到:

标题:

class ApiManager : public QObject
{
    Q_OBJECT
public:
    explicit ApiManager(QObject *parent = 0);
signals:
public slots:
};

extern ApiManager apiMng;
Run Code Online (Sandbox Code Playgroud)

资源:

ApiManager apiMng;
Run Code Online (Sandbox Code Playgroud)

问题是其他对象在初始化时也需要访问,我注意到C++全局对象是按字母顺序创建的.我想知道你是如何处理它的?为此存在一些诀窍?例如,在Free Pascal中世界每个类模块initializationfinalization部分:

Type
  TApiManager = class
end;

var ApiMng: TApiManager;

initialization
  ApiMng := TApiManager.Create;
finalization
  ApiMng.Free;
Run Code Online (Sandbox Code Playgroud)

... initialization项目模块的顺序可以在uses子句中的项目源中排序(如#include在C++中).我知道有很多方法可以做到这一点(例如main.cpp用自定义顺序初始化所有内容)但是想知道C++世界中什么是"好习惯"

编辑:由Q_GLOBAL_STATIC解决(在Qt 5.1中引入,但也适用于Qt 4.8),但仍有两个问题:

  1. 仍然不知道如何管理构造函数订单(以及在何处初始化它).因为Q_GLOBAL_STATIC创建的全局对象不是在应用程序启动时创建的.它们是在首次使用时创建的.所以我需要用自定义顺序在某处(在main.cpp?中)"触摸"这些对象.

  2. 文档说必须在body .cpp文件中调用Q_GLOBAL_STATIC,而不是在标头中调用.但是其他类没有看到这个对象.所以我创建了静态函数,它暴露了对这个对象的引用:

的.cpp:

Q_GLOBAL_STATIC(ApiManager, apiMng)
ApiManager *ApiManager::instance()
{
    return apiMng();
}
Run Code Online (Sandbox Code Playgroud)

但是从这个主题:http://qt-project.org/forums/viewthread/13977 Q_GLOBAL_STATIC应该自动公开实例,但它没有

c++ qt qtcore

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

QT-将自己的列添加到QFileSystemModel

我可以扩展QFileSystemModel并添加带有文本/图标的新列吗?

问候

qt

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

QThread - 如何阻止工人?

我正在读取我应该使用worker对象并通过moveToThread将其移动到线程而不是直接从QThread继承.但我找不到解决方案如何在我的对象工作者中停止循环.例如,我有测试循环:

void CollectionWorker::doWork()
{
    for (int i = 0; i < 10; ++i) {
        sleep(1);
        emit ping(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我将此对象移动到线程:

worker->moveToThread(mTh); 
Run Code Online (Sandbox Code Playgroud)

这工作正常.但是当我调用mTh.quit()时,线程正在等待,直到doWork中的循环结束.当我从继承的QThread然后直接在每次循环,我可以检查线程状态,并在thred完成破环,但不知道如何做到这一点的工人对象.我可以在worker对象中创建一些标志并从主线程切换它吗?或者我可以找到线程所有者并检查它的状态吗?或者在启动线程之前更好,在工作对象中设置线程指针,然后检查状态?什么是最好的线程安全解决方案?

问候

c++ qt

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

X11 - 如何获得系统颜色?

我正在使用X11 lib.是否有可能获得系统颜色?我的意思是从当前的用户主题,如脸部,突出颜色等.我不能使用GTK和QT库.存在以某种方式通过某些环境变量或freedesktop获取颜色?

问候

x11

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