小编ope*_*och的帖子

使用Matplotlib以非阻塞方式绘图

在过去的几天里,我一直在玩Numpy和matplotlib.我在尝试使matplotlib绘制函数而不阻塞执行时遇到问题.我知道在这里已经有很多线索提出了类似的问题,而且我已经搜索了很多但是没有设法让这项工作成功.

我曾经尝试过使用show(block = False),但我得到的只是一个冻结的窗口.如果我只是调用show(),则会正确绘制结果,但会阻止执行直到窗口关闭.从我读过的其他主题,我怀疑show(block = False)是否有效取决于后端.它是否正确?我的后端是Qt4Agg.你能看看我的代码并告诉我你是否看错了吗?这是我的代码.谢谢你的帮助.

from math import *
from matplotlib import pyplot as plt
print plt.get_backend()



def main():
    x = range(-50, 51, 1)
    for pow in range(1,5):   # plot x^1, x^2, ..., x^4

        y = [Xi**pow for Xi in x]
        print y

        plt.plot(x, y)
        plt.draw()
        #plt.show()             #this plots correctly, but blocks execution.
        plt.show(block=False)   #this creates an empty frozen window.
        _ = raw_input("Press [enter] to continue.")


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

PS.我忘了说我想在每次绘制内容时更新现有窗口,而不是创建一个新窗口.

python plot matplotlib

106
推荐指数
6
解决办法
10万
查看次数

git-stash更改而不还原

我使用Git处理一个项目.每隔一段时间我发现自己想要保存我的更改,而不是提交它们,只是作为备份,然后继续工作.我通常做的是git stash然后立即git stash apply将代码恢复到与存储之前相同的状态.我遇到的问题是git stash会恢复我的工作目录,所以即使我立即应用存储文件和项目也必须重建,因为它们似乎已经改变了.这非常令人讨厌,因为我们的一些项目需要很长时间才能构建.

所以我的问题是,有没有办法存储我的更改而不还原?如果stash不这样做,git中是否还有其他命令可以执行此操作?谢谢.

git git-stash

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

使用多字节字符集的MFC应用程序中的UTF-8文本

我正在开发一个应用程序,该应用程序接收以UTF-8编码的文本,并且需要在某些MFC控件上显示它。该应用程序是使用MultiByte字符集(MBCS)构建的,并且假定这不能更改。

我希望如果将接收自UTF-8的文本转换为宽字符字符串,则可以使用该SetWindowTextW方法正确显示它。为此,我使用了一个玩具应用程序,该应用程序从文件中读取输入并设置控件的文本。

std::wstring utf8_decode(const std::string &str)
{
    if (str.empty()) return std::wstring();
    int size_needed = MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), NULL, 0);
    std::wstring wstrTo(size_needed, 0);
    MultiByteToWideChar(CP_UTF8, 0, &str[0], (int)str.size(), &wstrTo[0], size_needed);
    return wstrTo;
}

BOOL CAboutDlg::OnInitDialog()
{
    std::vector<std::string> texts;
    texts.resize(6);
    std::fstream f("D:\\code\\sample-utf8.txt", std::ios::in);
    for (size_t i=0;i<6;++i)
        std::getline(f, texts[i]);

    ::SetWindowTextW(GetDlgItem(IDC_BUTTON1)->m_hWnd, utf8_decode(texts[0]).c_str());
    ::SetWindowTextW(GetDlgItem(IDC_BUTTON2)->m_hWnd, utf8_decode(texts[1]).c_str());
    ::SetWindowTextW(GetDlgItem(IDC_BUTTON3)->m_hWnd, utf8_decode(texts[2]).c_str());
    ::SetWindowTextW(GetDlgItem(IDC_BUTTON4)->m_hWnd, utf8_decode(texts[3]).c_str());
    ::SetWindowTextW(GetDlgItem(IDC_BUTTON5)->m_hWnd, utf8_decode(texts[4]).c_str());
    ::SetWindowTextW(GetDlgItem(IDC_BUTTON6)->m_hWnd, utf8_decode(texts[5]).c_str());
    return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

用MBCS构建玩具应用程序后,我没有得到想要的东西。 在此处输入图片说明

我使用unicode构建应用后,一切正常 在此处输入图片说明

这是否意味着在使用MBCS进行构建时就没有希望将unicode文本用于各个控件?如果可能的话,您能给我指点吗?谢谢。

c++ unicode mfc utf-8 multibyte-characters

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

标签 统计

c++ ×1

git ×1

git-stash ×1

matplotlib ×1

mfc ×1

multibyte-characters ×1

plot ×1

python ×1

unicode ×1

utf-8 ×1